WPF .NET 的差異

本文說明 .NET 和 .NET Framework 上的 Windows Presentation Foundation (WPF) 之間的差異。 適用于 .NET 的 WPF 是從 原始 WPF for .NET Framework 原始程式碼分支的開放原始碼架構

.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> 下列 格式:

  1. 在 Visual Studio 中 ,開啟 [方案總管 ] 窗格。
  2. 在您的 WPF 專案中,以滑鼠右鍵按一下 packages.config 將 packages.config > 移轉至 PackageReference。

Upgrading to PackageReference.

隨即會出現對話方塊,其中顯示匯出的最上層 NuGet 相依性,並詢問應將哪些其他 NuGet 套件升級至最上層。 選取 [ 確定], 並將從專案中移除 packages.config 檔案,並將 <PackageReference> 專案新增 至專案檔。

當您的專案使用 <PackageReference> 時,套件不會儲存在 本機的 Packages 資料夾中,它們會全域儲存。 開啟專案檔,並移除 <Analyzer> 任何參考 Packages 資料夾的專案。 這些分析器會自動包含在 NuGet 套件參考中。

程式碼存取安全性

.NET 不支援代碼存取安全性 (CAS)。 所有 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

注意

為了將移植摩擦降到最低,儲存和擷取與下列屬性相關的資訊的功能會保留在 類型中 XamlAccessLevel

  • PrivateAccessToTypeName
  • AssemblyNameString