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>
下列 格式:
- 在 Visual Studio 中 ,開啟 [方案總管 ] 窗格。
- 在您的 WPF 專案中,以滑鼠右鍵按一下 packages.config 將 packages.config > 移轉至 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
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應