次の方法で共有


WPF .NET との違い

この記事では、.NET 上の Windows Presentation Foundation (WPF) と .NET Framework の違いについて説明します。 WPF for .NET は、元の .NET Framework ソース コード用 WPF からフォークされた オープン ソース フレームワークです。

.NET Framework には、.NET でサポートされていない機能がいくつかあります。 サポートされていないテクノロジの詳細については、「 .NET で使用できない .NET Framework テクノロジ」を参照してください。

SDK スタイルのプロジェクト

.NET では、SDK スタイルのプロジェクト ファイルが使用されます。 これらのプロジェクト ファイルは、Visual Studio によって管理される従来の .NET Framework プロジェクト ファイルとは異なります。 .NET Framework WPF アプリを .NET に移行するには、プロジェクトを変換する必要があります。 詳細については、「 WPF デスクトップ アプリを .NET 7 にアップグレードする方法」を参照してください。

NuGet パッケージ参照

.NET Framework アプリの NuGet 依存関係が packages.config ファイルに一覧表示されている場合は、 <PackageReference> 形式に移行します。

  1. Visual Studio で、[ ソリューション エクスプローラー ] ウィンドウを開きます。
  2. packages.config で右クリックし、WPF プロジェクトの>packages.config を PackageReference に移行します

Visual Studio のソリューション エクスプローラーのコンテキスト メニューに [packages.configの移行] 項目が表示されます。

計算された最上位レベルの NuGet 依存関係を示すダイアログが表示され、他のどの NuGet パッケージを最上位レベルに昇格するかを確認します。 [OK] を選択すると、packages.config ファイルがプロジェクトから削除され、<PackageReference>要素がプロジェクト ファイルに追加されます。

プロジェクトで <PackageReference>を使用する場合、パッケージは パッケージ フォルダーにローカルに格納されず、グローバルに格納されます。 プロジェクト ファイルを開き、[<Analyzer> フォルダーを参照する要素をすべて削除します。 これらのアナライザーは、NuGet パッケージ参照に自動的に含まれます。

コード アクセス セキュリティ

コード アクセス セキュリティ (CAS) は、最新の .NET ではサポートされていません。これは.NET Framework のみの概念です。 CAS 関連のすべての機能は、完全信頼を前提として扱われます。 WPF for .NET では、CAS 関連のコードが削除されます。 これらの型のパブリック API サーフェスは、これらの型の呼び出しが成功するために引き続き存在します。

パブリックに定義された CAS 関連の型は、WPF アセンブリから Core .NET ライブラリ アセンブリに移動されました。 WPF アセンブリには、移動された型の新しい場所に型転送が設定されています。

源アセンブリ ターゲット アセンブリ タイプ
WindowsBase.dll System.Security.Permissions.dll MediaPermission
MediaPermissionAttribute
MediaPermissionAudio
MediaPermissionImage
MediaPermissionVideo
WebBrowserPermission
WebBrowserPermissionAttribute
WebBrowserPermissionLevel
System.Xaml.dll System.Security.Permissions.dll XamlLoadPermission
System.Xaml.dll System.Windows.Extension.dll XamlAccessLevel

移植の摩擦を最小限に抑えるために、次のプロパティに関連する情報を格納および取得する機能は、 XamlAccessLevel 型で保持されていました。

  • PrivateAccessToTypeName
  • AssemblyNameString