Share via


將 UWP 功能對應到 Windows 應用程式 SDK

本主題比較 UWP 和 Windows 應用程式 SDK 中以不同形式出現的主要功能區域。 此移轉指南中的內容支援從UWP XAML 移至 Windows 應用程式 SDK XAML—移至不同的UI架構,例如 Windows Presentation Foundation (WPF),不在本指南的範圍內。

功能 UWP Windows 應用程式 SDK (封包應用程式) 移轉注意事項
包裝 MSIX
應用程式具有身分識別
MSIX
應用程式具有身分識別
移轉至 Windows 應用程式 SDK的 UWP 應用程式應該保持在 MSIX 上,以確保受信任的全新安裝和卸載體驗,以及存取所有 API,包括需要身分識別的 API。
容器 應用程式容器:
- 安全性 = LowIL
- 檔案系統存取被代理
- 沒有註冊表存取權限
MSIX 容器:
- 安全性 = MediumIL
- 檔案系統存取與使用者相同,AppData 寫入虛擬化
- HKCU 登錄寫入虛擬化
使用 Windows 應用程式 SDK 移至較高的完整性層級,可讓您的應用程式具有更大的功能。 不過,如果您想要擴充移轉應用程式的功能以寫入 HKCU 或 AppData,請注意虛擬化。
啟動和執行個體化 套件身分識別 + CoreApplication 啟用,預設為單一執行個體 包標識,Main/WinMain + Windows 應用程式 SDK 啟動,預設多執行個體 確保您的應用程式可以處理多執行個體行為,或使用 AppInstance 來管理您的執行個體。
生命週期管理 暫停/繼續 電源/狀態通知 您可以使用 Power/State 變更通知來減少系統負載。
背景工作 InProc 和 OOP 背景工作 InProc COM 和 OOP 背景工作 您可以繼續使用您的 OOP 背景工作。 如果應用程式需要與主要進程通訊,請評估 IPC 機制,因為 OOP 背景工作是在 LowIL 中執行,而您的 Windows 應用程式 SDK 主要進程是在 MediumIL 中執行。

任何proc 背景工作都必須移轉至 COM 背景工作,請參閱建立和註冊 winmain COM 背景工作

如需 C# OOP 背景工作,請參閱使用 C#/WinRT 撰寫 Windows 執行階段元件和背景工作範例
視窗化 CoreWindow、AppWindow (預覽) HWND、AppWindow v2 視窗化行為在 Windows 應用程式 SDK 中已大幅變更。 請參閱視窗化功能移轉
傳訊 CoreDispatcher 和 DispatcherQueue DispatcherQueue、WndProc DispatcherQueue 支援 Win32 應用程式。 如需從 CoreDispatcher 移至 DispatcherQueue 的其他詳細數據,請參閱 執行緒功能移轉
UI 平台 系統 XAML、WebView、DirectX 及其他 WinUI 3、Webview2、DirectX 及其他 如需詳細資訊,請參閱 Windows UI Library (WinUI) migration.
文字轉譯 DirectWrite DWriteCore 可讓應用程式存取最新 DWrite 功能,並接收與 OS 發行排程分開的新 DWrite 更新。 如需詳細資訊,請參閱 DirectWrite 至 DWriteCore 移轉
資源 MRT MRTCore 如需詳細資訊,請參閱 MRT 至 MRTCore 移轉
.NET 執行階段 .NET Native / C# 7 .NET 6+/C# 9 Windows App SDK 提供對現代 .NET 執行時的造訪,以及對新語言功能的造訪。 不過,.NET ReadyToRun 編譯與 .NET Native 不同,因此您應該評估效能取捨。
2D 圖形 Win2D Win2D for WinUI 3 我們目前正在處理與 Windows 應用程式 SDK 一起運作的 Win2D 版本。 如需詳細資訊,請參閱文件
Windows 執行階段元件 適用於UWP的 Windows 執行階段元件專案範本 - C++:使用 Windows 執行階段元件 (WinUI 3) 專案範本。
- C#:使用 C#/WinRT 在 .NET 類別庫中創作 Windows 執行時間元件。
我們目前正在努力支援使用 C#/WinRT 創作 Windows 執行時間元件,以便在 Windows 應用程式 SDK 和 WinUI 3 中使用。