WPF .NET との違い
この記事では、.NET と .NET Framework での Windows Presentation Foundation (WPF) の違いについて説明します。 .NET の WPF は、.NET Framework ソース コードの元の WPF からフォークされたオープンソース フレームワークです。
.NET Framework の機能のうち、.NET ではサポートされないものがいくつかあります。 サポートされないテクノロジの詳細については、「.NET で使用できない .NET Framework テクノロジ」を参照してください。
重要
.NET 7 と .NET 6 用のデスクトップ ガイド ドキュメントは作成中です。
SDK スタイルのプロジェクト
.NET では、SDK スタイルのプロジェクト ファイルが使われます。 これらのプロジェクト ファイルは、Visual Studio によって管理される従来の .NET Framework プロジェクト ファイルとは異なります。 .NET Framework の WPF アプリを .NET に移行するには、プロジェクトを変換する必要があります。 詳細については、「WPF デスクトップ アプリを .NET 7 にアップグレードする方法」を参照してください。
NuGet パッケージのリファレンス
.NET Framework アプリで packages.config ファイルに NuGet の依存関係が一覧表示されている場合は、<PackageReference>
形式に移行します。
- Visual Studio で、 [ソリューション エクスプローラー] ペインを開きます。
- WPF プロジェクトで、右クリックで [packages.config]>[packages.config を PackageReference に移行する] と進みます。
計算された最上位の NuGet 依存関係を表示し、他のどの NuGet パッケージを最上位に昇格する必要があるかを尋ねるダイアログが表示されます。 [OK] を選択すると、packages.config ファイルがプロジェクトから削除され、<PackageReference>
要素がプロジェクト ファイルに追加されます。
プロジェクトで <PackageReference>
を使用する場合、パッケージは Packages フォルダーにローカルに保存されず、グローバルに格納されます。 プロジェクト ファイルを開き、Packages フォルダーを参照していた <Analyzer>
要素をすべて削除します。 これらのアナライザーは、NuGet パッケージの参照に自動的に含まれます。
コード アクセス セキュリティ
コード アクセス セキュリティ (CAS) は .NET ではサポートされていません。 CAS 関連のすべての機能は、完全な信頼の想定のもとで扱われます。 .NET の WPF では、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 |
Note
移植での問題を最小限に抑えるために、次のプロパティに関連する情報を格納および取得するための機能は、XamlAccessLevel
型に保持されていました。
PrivateAccessToTypeName
AssemblyNameString
.NET Desktop feedback
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示