Windows 應用程式 SDK 1.2 的預覽通道版本資訊
重要
預覽通道已經不支援使用在生產環境,且使用預覽版本的應用程式無法發布到 Microsoft Store。
預覽通道包含 Windows 應用程式 SDK 版本,其中包括處於開發後期階段的預覽通道功能。 預覽版本不包含實驗性功能和 API,但在下一個穩定版本之前仍可能會發生重大變更。
重要連結:
- 如果想要將現有應用程式從舊版的 Windows 應用程式 SDK 升級至較新版本,請參閱將現有專案更新至最新版本的 Windows 應用程式 SDK。
- 如需預覽版本相關文件,請參閱 Windows 應用程式 SDK 預覽與實驗通道的安裝工具。
最新預覽通道版本:
最新穩定通道版本:
1.2 版 Preview 2 (1.2.0-preview2)
這是預覽通道為 1.2 版發布的最新版本。
在現有的 Windows 應用程式 SDK 1.1 版 (來自穩定通道) 應用程式中,您可以將 Nuget 套件更新為 1.2.0-preview2 (請參閱在 Visual Studio 使用 NuGet 套件管理員安裝與管理套件中的更新套件一節)。
如需更新的執行階段和 MSIX,請參閱 最新的 Windows 應用程式 SDK 下載。
重要
Visual Studio 2019 和 .NET 5 已不再支援組建 C# 應用程式 (請參閱 Windows 應用程式 SDK 1.2 版即將轉移到 C# WinRT 2.0)。 您將需要 Visual Studio 2022 和下列其中一個 .NET SDK 版本:6.0.401 (或之後的版本)、6.0.304、6.0.109。
若要更新 .NET SDK 版本,請安裝 Visual Studio 2022 最新版,或前往 .NET 下載項目。 在沒有所需 .NET SDK 版本的情況下更新 NuGet 套件時,您會看到如下的錯誤:「此版本的 WindowsAppSDK 需要 .NET 6+ 和 WinRT.Runtime.dll 2.0 版或更高的版本。」 若要將專案從 .NET 5.0 更新到 .NET 6.0,請開啟專案檔案,並將「TargetFramework」變更為 net6.0
,「目標 OS 版本」則變更為適用的值 (例如 net6.0-windows10.0.19041.0
)。
Windows 的第三方小工具
小工具面板最初是在 Windows 11 推出,但僅限於顯示第一方小工具。 小工具是小型的 UI 容器,可在小工具面板顯示文字和圖形,且與裝置上安裝的應用程式相關聯。 透過 Windows 應用程式 SDK,第三方開發人員如今已可為封裝的 Win32 應用程式建立小工具,並在 Windows 11 小工具面板進行本機測試。
如需小工具的詳細資訊,請參閱小工具概觀。
若要開始為您的應用程式開發小工具,請參閱小工具提供者開發文件和小工具設計基本概念了解必要條件、指南和最佳做法。
此版本的先決條件包括:
- 在開發機器啟用開發人員模式。
- 開發機器執行的 Windows 版本來自 Windows 測試人員計畫 (WIP) 的開發人員通道,其中小工具面板的版本為 521.20060.1205.0 或以上。
開發小工具時的已知限制
- 第三方小工具只能在已於 WIP 註冊此預覽版本的裝置進行本機測試。 在 Windows 應用程式 SDK 1.2.0,使用 Windows 零售版本的使用者已經可以透過應用程式在 Microsoft Store 的上架版本取得第三方小工具。
- 小工具只能在封裝的 Win32 應用程式建立。 漸進式 Web 應用程式 (PWA) 的小工具預計將在 Microsoft Edge 108 中獲得支援。
精簡以 .NET 開發的應用程式
.NET 開發人員現在已可發布精簡過的 WinAppSDK 應用程式。 有了 CsWinRT 2.0,以 WinAppSDK 發布的 C#/WinRT 投射現在已可精簡。 發布精簡過的應用程式可減少應用程式在硬碟占用的空間,因為可精簡的二進位碼中未使用的程式碼都已移除。 應用程式的啟動效能可能會改善。 在發布精簡的基本 Hello World 應用程式後,我們發現硬碟佔用空間減少將近 80%,且啟動效能改善了約 7%。 精簡的 WinUI 程式庫則節省了近 45% 的硬碟空間。
如需詳細了解精簡功能的起用方式、精簡的限制 (例如可精簡類型產生的反射),以及精簡警告,請參閱精簡獨立部署和可執行檔。 開發人員在精簡後,應徹底測試應用程式,確保所有功能皆如期運作。 如需詳細資訊,請參閱 GitHub 問題 2478。
DisplayInformation
Win32 應用程式現在已可透過 WinAppSDK 的 DisplayInformation 類別支援高動態範圍 (HDR)。 DisplayInformation 類別可讓您監控應用程式檢視的顯示器相關資訊。 其中包含的事件可讓用戶端監控對應用程式檢視的所在顯示器有影響的檢視變更,以及對應用程式檢視可能有影響的顯示器變更。
已修正 WinUI 3 的問題
- Windows 10 應用程式已可支援從 DesktopAcrylicController 取得壓克力底圖材質。 如需詳細資訊,請參閱 GitHub 問題 7112。
- 已修正 App.UnhandledException 路由到應用程式時失敗的問題。 如需詳細資訊,請參閱 GitHub 問題 5221。
- 已修正 WinAppSDK 1.1 的 ListView 樣式迴歸予變更的問題。 如需詳細資訊,請參閱 GitHub 問題 7666。
其他限制和已知問題 (1.2.0-preview2)
重要
當您從專案參照 WinAppSDK 1.2 時,您可能會看到類似如下的錯誤:「偵測到套件降級:Microsoft.Windows.SDK.BuildTools 從 10.0.22621.1 降級為 10.0.22000.194」,原因是應用程式專案和 WinAppSDK 套件的套件參照不相容。 若要解決此問題,您可以將專案的參照更新到較新且相容的 Microsoft.Windows.SDK.BuildTools 版本,或移除專案中的參照。 移除專案的參照後,WinAppSDK 套件就會隱含地參照相容的版本。
- 目前不支援以 Arm64 Visual Studio 進行組建。
- 啟動程序載入程式和 Undocked RegFree WinRT 自動初始設定式的預設值 (現在) 僅供會產生可執行檔 (OutputType=Exe 或 WinExe) 的專案使用。 這可以避免類別庫 DLL 和其他非可執行檔依預設新增自動初始設定式。
- 如果您的非可執行檔 (例如不會初始化啟動程序載入程式的一般可執行檔所載入的測試 DLL),您可以經由
<WindowsAppSdkBootstrapInitialize>true</WindowsAppSdkBootstrapInitialize>
或<WindowsAppSdkUndockedRegFreeWinRTInitialize>true</WindowsAppSdkUndockedRegFreeWinRTInitialize>
在專案明確啟用自動初始設定式。
- 如果您的非可執行檔 (例如不會初始化啟動程序載入程式的一般可執行檔所載入的測試 DLL),您可以經由
- 您可以呼叫版本資訊 API (ReleaseInfo 和 RuntimeInfo),但會傳回版本 0 (並非實際版本資訊)。
1.2 版 Preview 1 (1.2.0-preview1)
在現有的 Windows 應用程式 SDK 1.1 版 (來自穩定通道) 應用程式中,您可以將 Nuget 套件更新為 1.2.0-preview1 (請參閱在 Visual Studio 使用 NuGet 套件管理員安裝與管理套件中的更新套件一節)。
如需更新的執行階段和 MSIX,請參閱 最新的 Windows 應用程式 SDK 下載。
WinUI 3
WinUI 3 應用程式可透過 MediaPlayerElement 和 MediaTransportControls 媒體播放控制項播放影音。 如需詳細了解使用媒體控制項的方式和時機,請參閱媒體播放器。
WinUI 3 已經更新,最新的控制項、樣式和行為已與 WinUI 2.8 不同。 這些更新包含新增了 InfoBadge 控制項、改善了協助工具和高對比模式,以及修正控制項的錯誤。 如需詳細資訊,請參閱 WinUI 2.7 和 WinUI 2.8 的版本資訊。
已知問題
WinAppSDK 1.1 的 ListView 樣式會迴歸和變更。
通知
AppNotificationBuilder 推出了 XML 承載的替代方案,可供建立與定義應用程式通知。
請參閱 GitHub 的 AppNotificationBuilder 規格了解使用資訊。
另請參閱快速入門:Windows 應用程式 SDK 的應用程式通知,以便參考如何建立桌面 Windows 應用程式來傳送和接收本機應用程式通知的範例。
重大變更
如果是推播通知,在進行通道請求呼叫時,應用程式需要使用 Azure 物件 ID,而不是 Azure 應用程式 ID。 如需詳細了解如何尋找 Azure 物件識別碼,請參閱快速入門:Windows 應用程式 SDK 的推播通知。
已修正的問題
PushNotificationManager.IsSupported 會針對高權限模式執行檢查。 如果應用程式的權限升高,就會傳回 false
。
已知限制 (通知)
- 在 AppNotificationScenario,
Urgent
僅支援 Windows 19041 和之後的版本。 您可以使用 AppNotificationBuilder.IsUrgentScenarioSupported 檢查功能是否可在執行階段使用。 - 在 AppNotificationButton,
hint-toolTip
和hint-buttonStyle
僅支援 19041 和之後的版本。 您可以使用 IsButtonStyleSupported 和 IsToolTipSupported 檢查功能是否可在執行階段使用。 - 在 MediaPlayerElement,如果使用於未封裝應用程式的 XAML 標記中,Source 屬性無法與 ms-appx 或 ms-resource URI 搭配設定。 如需替代方案,請將 Source 設為使用檔案 URI,或從程式碼設定。
視窗化
Windows 10 的 1809 和之後的版本可透過 AppWindowTitleBar 類別完整自訂標題列。 您可以將 AppWindowTitleBar.ExtendsContentIntoTitleBar 設為 true
,藉此將內容擴充到標題列區域;設為 SetDragRectangles 則可定義拖曳區域 (除了其他自訂選項之外)。
如果您以前都是使用 AppWindowTitleBar.IsCustomizationSupported 屬性來確認您是否可以呼叫 AppWindowTitleBar API,它現在會在支援的 Windows 應用程式 SDK Windows 10 版本 (1809 及之後的版本) 傳回 true
。
已知限制 (視窗化)
Windows 10 不支援簡單的標題列自訂。 這些自訂項目包括 BackgroundColor、InactiveBackgroundColor、ForegroundColor、InactiveForegroundColor 和 IconShowOptions。 如果您呼叫這些屬性,系統會忽略它們且不傳送通知。 其他 AppWindowTitleBar API 都能在 Windows 10 版本 1809 和之後版本運作。 如要自訂隱藏式輔助字幕按鈕顏色的 API 等屬性和 Height,ExtendsContentIntoTitleBar 必須設為 true
,否則系統也會忽略它們且不傳送通知。
存取控制
已在 GetSecurityDescriptorForAppContainerNames 功能推出 security.accesscontrol.h,使封裝程序和一般 Win32 API 之間的命名物件共用更簡單流暢。 此方法會擷取套件系列名稱 (PFN) 清單並存取遮罩,然後傳回安全性描述項。 請參閱 GitHub 的 GetSecurityDescriptorForAppContainerNames 規格了解詳情。
其他限制和已知問題 (1.2.0-preview1)
- .NET PublishSingleFile 不受支援。