Windows 應用程式 SDK 1.1 的預覽通道版本資訊
重要
預覽通道已經不支援使用在生產環境,且使用預覽版本的應用程式無法發布到 Microsoft Store。
預覽通道包含 Windows 應用程式 SDK 版本,其中包括處於開發後期階段的預覽通道功能。 預覽版本不包含實驗性功能和 API,但在下一個穩定版本之前仍可能會發生重大變更。
重要連結:
- 如果想要將現有應用程式從舊版的 Windows 應用程式 SDK 升級至較新版本,請參閱將現有專案更新至最新版本的 Windows 應用程式 SDK。
- 如需預覽版本相關文件,請參閱 Windows 應用程式 SDK 預覽與實驗通道的安裝工具。
最新預覽通道版本:
最新穩定通道版本:
1.1 版 Preview 3 (1.1.0-preview3)
這是預覽通道為 1.1 版發布的最新版本。 它支援所有預覽通道的功能 (請參閱各別發行通道提供的功能)。
在現有的 Windows 應用程式 SDK 1.0 版應用程式中,您可以將 Nuget 套件更新為 1.1.0-preview3 (請參閱在 Visual Studio 使用 NuGet 套件管理員安裝與管理套件中的更新套件一節)。 此外,請查看最新的 Windows 應用程式 SDK 下載取得更新的執行階段和 MSIX。
注意
如果您是 C# 開發人員,您需要下列其中一個 .NET SDK 版本:5.0.213、5.0.407、6.0.104、6.0.202 (或之後的版本)。 若要更新 .NET SDK 版本,請前往 .NET 下載項目或更新至 Visual Studio 最新版。 在沒有所需 .NET SDK 版本的情況下更新 NuGet 套件時,您會看到如下的錯誤:「此版本的 WindowsAppSDK 需要 .NET 6+ 和 WinRT.Runtime.dll 1.6 版或更高的版本。」
除了 Preview 2 的全部功能,下列章節還說明此版本的新增與更新功能、限制和已知問題。
WinUI 3 (1.1.0-preview3)
WinUI 3 應用程式現在已支援雲母和背景壓克力。
如需詳細了解這些材質,請參閱 Windows 11 的材質。 請於在 Windows 11 桌面應用程式中套用 Mica 或壓克力材質,以及 GitHub 的 WinUI 控制項程式庫中,分別查看在 C++ 和 C# 應用程式套用 Mica 的範例程式碼。
通知 (1.1.0-preview3)
修正的問題:
- 在 1.1.0-preview1 和 1.1.0-preview2,有些未封裝應用程式的圖示會錯誤複製到 AppData\LocalMicrosoftWindowsAppSDK。 在此版本,這些圖示會改複製到 AppData\Local\Microsoft\WindowsAppSDK。 為避免圖示外流,請在更新到 1.1.0-preview3 後手動刪除錯誤路徑的應用程式圖示。
- 現在已支援透過捷徑擷取應用程式通知中的應用程式圖示和顯示名稱。 此應用程式圖示的優先權會高於資源檔案中指定的任何圖示。
- 未封裝應用程式推播通知的支援功能已復原 (請參閱限制了解已備註的例外)。 我們推出的 PushNotificationManager::IsSupported API 可檢查您的應用程式是否支援推播通知。
限制:
- 目前不支援高權限的未封裝應用程式通知。 PushNotificationManager::IsSupported 不會針對高權限模式執行檢查。 不過,我們正在嘗試於日後的版本支援此功能。
MSIX 封裝
我們強化了 MSIX,讓它透過以下擴充功能類別來新增與擴充現有功能:
- windows.appExecutionAlias
- windows.customDesktopEventLog
- windows.dataShortcuts
- windows.fileTypeAssociation
- windows.fileTypeAssociation.iconHandler
- windows.folder
- windows.shortcut
這些類別都需要安裝 Windows 應用程式 SDK 架構套件。 請參閱最新的 Windows 應用程式 SDK 下載以安裝執行階段。
環境管理員 (1.1.0-preview3)
可讓開發人員新增、移除與修改環境變數的 API 設定,無需直接使用登錄 API。
1.1 Preview 1 澄清:使用環境管理員的應用程式在解除安裝後會使任何環境變數變更都一併自動移除的功能僅適用於封裝應用程式。 此外,擷取環境變數變更需要安裝 Windows 應用程式 SDK 架構套件,請查看最新的 Windows 應用程式 SDK 下載以取得執行階段。
其他已知限制
1.1 版 Preview 2 的迴歸:
- 使用 MRT Core API 的 .NET 應用程式和不會部署單一專案 MSIX 的 WinUI 應用程式:
- 已新增到專案成為現有項目及之前分別自動加入 PRIResource 及 Content ItemGroups 的 RESW 和影像檔案將不會加入上述 ItemGroups。 因此,這些資源在 PRI 產生過程不會加到索引,所以在執行階段無法使用。
- 解決辦法:手動將這些資源加入專案檔案,然後從 None ItemGroup 移除。
- 替代的因應措施:可用時,請將應用程式的 .NET SDK 升級至 6.0.300。 請參閱 .NET SDK 的版本需求了解額外資訊。
- 已新增到專案成為現有項目及之前分別自動加入 PRIResource 及 Content ItemGroups 的 RESW 和影像檔案將不會加入上述 ItemGroups。 因此,這些資源在 PRI 產生過程不會加到索引,所以在執行階段無法使用。
- 如果是不會部署單一專案 MSIX 的 .NET 應用程式:
- 如果檔案已新增到 Content ItemGroup 兩次以上,就會發生組建錯誤。
- 解決辦法:刪除重複的新增項目,或將專案檔案的 EnableDefaultContentItems 設為 false。
- 如果檔案已新增到 Content ItemGroup 兩次以上,就會發生組建錯誤。
兩者的迴歸都會復原為下個穩定版本。
1.1 版 Preview 2 (1.1.0-preview2)
這是預覽通道為 1.1 版發布的第二版。 它支援所有預覽通道的功能 (請參閱各別發行通道提供的功能)。
在現有的 Windows 應用程式 SDK 1.0 版應用程式中,您可以將 Nuget 套件更新為 1.1.0-preview2 (請參閱在 Visual Studio 使用 NuGet 套件管理員安裝與管理套件中的更新套件一節)。 此外,請查看最新的 Windows 應用程式 SDK 下載取得更新的執行階段和 MSIX。
注意
如果您是 C# 開發人員,您需要下列其中一個 .NET SDK 版本:5.0.213、5.0.407、6.0.104、6.0.202 (或之後的版本)。 若要更新 .NET SDK 版本,請前往 .NET 下載項目或更新至 Visual Studio 最新版。 在沒有所需 .NET SDK 版本的情況下更新 NuGet 套件時,您會看到如下的錯誤:「此版本的 WindowsAppSDK 需要 .NET 6+ 和 WinRT.Runtime.dll 1.6 版或更高的版本。」
除了 Preview 1 的全部功能,下列章節還說明此版本的新增與更新功能、限制和已知問題。
通知 (1.1.0-preview2)
修正的問題:
- 應用程式如沒有套件身分識別,在傳送通知後,如果應用程式圖示屬於應用程式的資源,圖示就會顯示在通知中。 如果應用程式資源不含圖示,系統就會使用 Windows 預設應用程式圖示。
- 未在執行中的 WinUI 3 應用程式,現在已可透過通知在背景啟動。
1.1 Preview 1 的迴歸: 未封裝應用程式的推播通知支援。 預計在下個版本復原。
已知限制:
- 我們推出的 PushNotificationManager::IsSupported API 可檢查獨立應用程式是否支援推播通知。 不過,此 API 仍無法按照預期運作,我們會在下個預覽版本完整支援 IsSupported API,請靜候佳音。
- 有些未封裝應用程式的圖示會錯誤複製到 AppData\LocalMicrosoftWindowsAppSDK。 在下個版本,這些圖示會改複製到 AppData\Local\Microsoft\WindowsAppSDK。 為避免圖示外流,開發人員必須在升級到下個版本後手動刪除錯誤路徑的應用程式圖示。
- 不支援透過捷徑擷取通知中的應用程式圖示和顯示名稱。 不過,我們正在嘗試於日後的版本支援此功能。
部署
新功能:
- 封裝應用程式現在已可使用 DeploymentManager.Initialize API 強制部署 Windows 應用程式 SDK 執行階段套件。
- 啟動程序載入程式 API 已加入新選項,可用於提升使用性和疑難排解。 如需詳細資訊,請參閱使用 Windows 應用程式 SDK 運行時間來封裝外部位置或解除封裝的應用程式,以及啟動程式初始化失敗的豐富資訊。
已知限制:
- 只有 Windows 10 的 1903 和之後版本支援獨立部署。
視窗化
如需更輕鬆以程式設計方式存取在 USER32.dll
實作的功能 (請參閱 Windows 與訊息),此版本在 AppWindow 本身呈現更多該類功能。
新功能:
- 應用程式在開啟視窗後,如果呼叫 AppWindow.ShowOnceWithRequestedStartupState (等同於
ShowWindow(SW_SHOWDEFAULT)
),對視窗的顯示方式有更多的控制權。 - 應用程式可顯示、最小化或復原視窗,並指定視窗是否要在接收到呼叫時啟動。
- 應用程式現在可設定視窗在 Win32 座標的用戶端區域大小。
- 我們已新增 API 來支援管理 Z 軸方向的視窗。
- 以 AppWindowTitleBar.ExtendsContentIntoTitleBar 繪製自訂標題列的應用程式,可設定 PreferredTitleBarHeight 選項。 您可以選擇標準高度標題列,或選擇長標題列來加大空間放入互動式內容。 請參閱 Fluent 設計指導方針的標題列,了解使用長標題列的建議時機。
已知限制:
- 只有 Windows 11 支援長標題列。 我們正在致力將此功能連同其他自訂標題列 API 往下支援。
WinUI 3 (1.1.0-preview2)
修正的問題:
- 已修正沒有藉由將 WebView2 SDK 從 1020.46 升級到 1185.39 來安裝 C/C++ 執行階段 (CRT) 時,含有 WebView2 的 C# 應用程式會在啟動時當機的問題。
- 已修正有些圓角在理應顯示單色時卻顯示漸層的問題。 如需詳細資訊,請參閱 GitHub 的問題 6076 & 問題 6194。
- 已修正更新的樣式在 generic.xaml 遺失的問題。
- 已修正捲動至 ListView 尾端會導致應用程式當機的版面配置循環問題。 如需詳細資訊,請參閱 GitHub 上的問題 6218。
效能
C# 應用程式有多項效能改良。 如需了解詳情,請參閱 C#/WinRT 1.6.1 版本資訊。
1.1 版 Preview 1 (1.1.0-preview1)
這是預覽通道為 1.1 版發布的第一版。 它支援所有預覽通道的功能 (請參閱各別發行通道提供的功能)。
在現有的 Windows 應用程式 SDK 1.0 版應用程式中,您可以將 Nuget 套件更新為 1.1.0-preview1 (請參閱在 Visual Studio 使用 NuGet 套件管理員安裝與管理套件中的更新套件一節)。 此外,請查看最新的 Windows 應用程式 SDK 下載取得更新的執行階段和 MSIX。
以下部分介紹了此版本的新功能和更新功能、限制和已知問題。
WinUI 3 (1.1.0-preview1)
已知問題:已修正拖放功能啟用時使用者無法放下元素的問題。
高權限 (管理員) 支援
使用 Windows App SDK 1.1 Preview 1 時,應用程式 (包括 WinUI 3) 能以更高的權限運作。
重要限制:
- 目前僅適用於 Windows 11。 我們正在評估於之後的版本將此支援功能向下支援。
已知問題:
- WinUI 3 應用程式在拖放功能的互動中,會在拖曳元素時當機。
自封式部署
Windows 應用程式 SDK 1.1 將推出獨立式部署的支援功能。 我們的Windows 應用程式 SDK 部署概觀詳述了架構相依式及獨立式部署的差異,以及操作方法。
已知問題:
已封裝的 C++ 應用程式需要將下列項目新增到專案檔案的下方,才能解決獨立式
.targets
檔案移除 VCLibs 架構參照的問題:<PropertyGroup> <IncludeGetResolvedSDKReferences>true</IncludeGetResolvedSDKReferences> </PropertyGroup> <Target Name="_RemoveFrameworkReferences" BeforeTargets="_ConvertItems;_CalculateInputsForGenerateCurrentProjectAppxManifest"> <ItemGroup> <FrameworkSdkReference Remove="@(FrameworkSdkReference)" Condition="'%(FrameworkSdkReference.SDKName)' == 'Microsoft.WindowsAppRuntime.1.1-preview1'" /> </ItemGroup> </Target>
只有 Windows 10 的 1903 和之後版本提供支援。
通知 (1.1.0-preview1)
封裝應用程式 (包含具有外部位置的封裝) 和未封裝應用程式的開發人員現在已可傳送 Windows 通知。
新功能:
- 支援封裝與未封裝應用程式的應用程式通知。 GitHub 的完整詳情
- 開發人員可以在本機或從自己的雲端服務傳送應用程式通知,也就是快顯通知。
- 支援封裝與未封裝應用程式的推播通知。 GitHub 的完整詳情
- 開發人員可從自己的雲端服務傳送原始通知或應用程式通知。
限制:
- 獨立式發布的應用程式可能不支援推播通知。 下個預覽版本的 IsSupported API 將支援推播通知,請靜候佳音。
- 未封裝的應用程式在傳送應用程式通知時,除非是主控台應用程式,否則應用程式通知不會顯示應用程式圖示。 未封裝的主控台應用程式應遵循 ToastNotificationsDemoApp 範例所式的模式。
- 您必須安裝 Windows 應用程式 SDK 執行階段,才可支援推播通知,請查看 最新的 Windows 應用程式 SDK 下載以取得安裝程式。
- 未在執行中的 WinUI 3 應用程式,無法透過通知在背景啟動。 不過,我們正在嘗試於日後的版本支援此功能。
環境管理員 (1.1.0-preview1)
可讓開發人員新增、移除與修改環境變數的 API 設定,無需直接使用登錄 API。
新功能:
- 使用環境管理員的應用程式在解除安裝後,任何環境變數變更都會自動移除。
限制:
- 目前不支援 C# 應用程式。 我們正在評估於之後的版本將此功能加入 C# 應用程式。
其他限制和已知問題
- 如果您使用 C# 搭配 1.1.0 Preview 1,則必須至少使用下列其中一個 .NET SDK 版本:.NET SDK 6.0.201、6.0.103、5.0.212 或 5.0.406。 如要升級 .NET SDK,您可以更新為最新版的 Visual Studio,或前往下載 .NET。