共用方式為


Windows 應用程式 SDK 的最新穩定通道版本資訊

穩定通道提供的 Windows 應用程式 SDK 版本可支援生產環境的應用程式使用。 使用穩定版 Windows 應用程式 SDK 的應用程式也可以發布至 Microsoft Store。

重要連結

穩定通道版本資訊封存:

Windows 應用程式 SDK 的下載項目

注意

Windows 應用程式 SDK Visual Studio 延伸模組 (VSIX) 不再以獨立下載的形式發布。 它們改在 Visual Studio 內 的Visual Studio Marketplace 提供。

版本 1.6.3 (1.6.241114003)

這是 Windows 應用程式 SDK的服務版本,其中包含1.6版的重要錯誤修正。

  • 已修正讀取屬性會 AppWindow.ExtendsContentIntoTitleBar 開啟自定義標題列轉譯的問題。 如需詳細資訊,請參閱 GitHub 問題 #9988
  • 已修正在解構 時可能發生的 TextBox/RichEditBox損毀。 如需詳細資訊,請參閱 GitHub 問題 #9070
  • 已修正失敗的問題 PackageDeploymentManager.IsPackageReadyOrNewerAvailable() 。 如需詳細資訊,請參閱 GitHub 問題 #4817
  • 已修正會洩漏的問題 ScrollViewer
  • 已針對應用程式停止轉譯且永不復原的罕見案例新增偵測。
  • 已修正當應該為 PackageFamilyName 註冊時需要 URI 的問題 PackageDeploymentManager.RegisterPackageSetAsync()
  • 已修正導致應用程式無法安裝或卸載的問題。 如需詳細資訊,請參閱 GitHub 問題 #4881

此版本包含下列新的 API,可讓 Widget 提供者在其 Widget 中納入 Web 內容:

Microsoft.Windows.Widgets.Providers 
  IWidgetManager2 
  IWidgetProviderMessage 
  IWidgetResourceProvider 
  WidgetManager 
     SendMessageToContent 

  WidgetMessageReceivedArgs 
  WidgetResourceRequest 
  WidgetResourceRequestedArgs 
  WidgetResourceResponse 

版本 1.6.1 (1.6.240923002)

這是 Windows 應用程式 SDK 的維護版本,其中包含1.6版的重要錯誤修正。

  • 已修正使用 FocusVisualKind.Reveal() 時的當機問題。 如需詳細資訊,請參閱 GitHub 問題 #9966
  • 已修正來自 Bcp47Langs.dll 的嘈雜C++例外狀況。 如需詳細資訊,請參閱 GitHub 問題 #4691。 請注意,此修正程式會移除 與的同步處理 Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride
  • 已修正顯示 ContentDialog之後立即引發額外Unloaded事件的問題。 如需詳細資訊,請參閱 GitHub 問題 #8402
  • 已修正即使有開啟空間,CommandBar 功能表可能未正確開啟的問題。
  • 已修正當最上層視窗以從右至左模式執行時,無法正確處理區域輸入 InputNonClientPointerSource 的問題。
  • 已修正 Windows SDK 架構版本的編譯時間檢查,以處理用於 .NET 9 的略有不同架構名稱。

1.6 版

下列各節說明 1.6 版的新功能和更新的功能和已知問題。

在現有的 Windows 應用程式 SDK 1.5 應用程式中,您可以將 Nuget 套件更新為 1.6.240829007(請參閱使用 NuGet 封裝管理員 在 Visual Studio 中安裝和管理套件一節)。

如需更新的執行階段和 MSIX,請參閱 Windows 應用程式 SDK 的下載項目

1.6 的必要項目變更

C++項目變更

將C++專案更新為1.6時,您必須將項目參考新增至 Microsoft.Web.WebView2 套件。 如果您在Visual Studio中透過 NuGet 封裝管理員 更新,將會為您新增此相依性。

C# 項目變更

在 1.6 中,Windows 應用程式 SDK 受控應用程式需要 Microsoft.Windows.SDK.NET.Ref *.*.*.38或更新版本,這可以透過檔案csproj中的 WindowsSdkPackageVersion 指定。 例如:

<Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
       <OutputType>WinExe</OutputType>
       <TargetFramework>net8.0-windows10.0.22621.0</TargetFramework>
       <TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
       <WindowsSdkPackageVersion>10.0.22621.38</WindowsSdkPackageVersion>
   <PropertyGroup>
   ...

此外,Windows 應用程式 SDK 受控應用程式應該更新為 Microsoft.Windows.CsWinRT 2.1.1 (或更新版本)。

注意

發行下一個 .NET SDK 服務更新之後,就不再需要這些手動參考。

支援原生 AOT

1.6 中的原生 AOT 支援

原生預先編譯現在支援 .NET PublishAot 項目屬性。 如需原生 AOT 的詳細資訊,請參閱 原生 AOT 部署。 由於 AOT 建置在修剪支援上,因此下列大部分修剪相關指引也適用於 AOT。

如需PublishAot支援和修剪支援,除了上一節所述的 C# 專案變更之外,您還需要Microsoft.Windows.CsWinRT 2.1.1 的套件參考(或更新版本),才能從該套件啟用來源產生器,直到不再需要下一個 .NET SDK 維護更新。

如需詳細資訊,請參閱 CsWinRT 修剪/AOT 支援檔和 CsWinRT 2.1.1 版本資訊

因為 Windows 應用程式 SDK 在 F5 部署時叫用發佈目標,因此建議您在 NuGet 還原時間啟用PublishAot,方法是將它新增至您的csproj檔案:

<PublishAot>true</PublishAot>

解決 AOT 問題

在此版本中,開發人員會負責確保所有類型都經過適當根目錄,以避免修剪(例如使用以反映為基礎的 {Binding} 目標)。 稍後的版本會增強 C#/WinRT 和 XAML 編譯程式,盡可能自動進行根編製、警示開發人員修剪風險,並提供解決的機制。

部分類別

C#/WinRT 也包含 PublishAot 2.1.1 版的支援。 若要使用 C#/WinRT 啟用 AOT 發行的類別,必須先將它標示 partial為 。 這可讓 C#/WinRT AOT 來源分析器將類別屬性設為靜態分析。 只有類別(其中包含方法,修剪的目標)需要這個屬性。

不安全的程式代碼錯誤

CsWinRT 來源產生器可能會產生使用 unsafe的程式代碼。 如果您在編譯期間遇到這類錯誤,或針對它發出診斷警告(CS0227 的「不安全程序代碼只有在使用 /unsafe 編譯時才會出現),您應該將 EnableUnsafeBlocks 設定為 true。 如需詳細資訊,請參閱 GitHub 問題 CsWinRT #1721

WebView2 尚未與 AOT 相容

套件 1.0.2651.64 版中的 Microsoft.Web.WebView2 WebView2 投影尚未相容。 這會在即將發行的 Microsoft.Web.WebView2 套件中修正,然後您可以在項目中參考。

無反射技術

若要啟用 AOT 相容性,應以靜態型別串行化、AppContext.BaseDirectory、typeof() 等取代以反映為基礎的技術。如需詳細資訊,請參閱 修剪警告簡介。

根目錄類型

在實作完整支援 {Binding} 之前,可能會保留型別的修剪,如下所示:

假設專案P在命名空間N中使用類型T為 的元件A,它只會動態參考(因此通常已修剪),T可以透過下列方式保留:

P.csproj

<ItemGroup>
    <TrimmerRootDescriptor Include="ILLink.Descriptors.xml" />
</ItemGroup>

ILLink.Descriptors.xml

<?xml version="1.0" encoding="utf-8"?>
<linker>
    <assembly fullname="A">
        <type fullname="N.T" preserve="all" />
    </assembly>
</linker>

如需完整的根描述元 XML 表達式語法,請參閱 根描述元

注意

尚未採用 AOT 支援的相依性套件可能會顯示運行時間問題。

分離的 WebView2 版本控制

Windows 應用程式 SDK 現在會使用Edge WebView2 SDK 作為 NuGet 參考,而不是內嵌Edge WebView2 SDK 的硬式編碼版本。 新的模型可讓應用程式選擇較新版本的Microsoft.Web.WebView2套件,而不是受限於建置 Windows 應用程式 SDK的版本。 新的模型也允許應用程式參考也會參考Edge WebView2 SDK的 NuGet 套件。 如需詳細資訊,請參閱 GitHub 問題 #5689

新的套件部署 API

套件管理 API 已收到數個增強功能,包括 Is*ReadyOrNewerAvailable*()、EnsureReadyOptions.RegisterNewerIfAvailable、Is*Provisioned*()、IsPackageRegistrationPending(),以及數個錯誤修正。 如需詳細資訊,請參閱 PackageManagement.md提取要求 #4453

改善的 TabView 索引標籤卸除

已改善 1.6 中的 TabView 卸除

TabView 支援新的 CanTearOutTabs 模式,提供將索引標籤拖曳到新視窗的增強體驗。 啟用這個新選項時,Tab 拖曳非常像是 Edge 和 Chrome 中的索引標籤拖曳體驗,其中會在拖曳期間立即建立新的視窗,讓使用者將其拖曳到螢幕邊緣,以最大化或貼齊視窗的一個平滑動作。 此實作也不會使用拖放 API,因此不會受到這些 API 中任何限制的影響。 值得注意的是,以系統管理員身分執行的程式支援索引標籤卸除。

其他值得注意的變更

  • 已新增 API ColorHelper.ToDisplayName() ,以填補 UWP 的空白。
  • 已新增 類別 Microsoft.Windows.Globalization.ApplicationLanguages ,其中特別包含新功能 PrimaryLanguageOverride 。 如需詳細資訊,請參閱 GitHub 問題 #4523
  • 未密封 ItemsWrapGrid。 這應該是回溯相容的變更。
  • PipsPager 支援可在第一個專案與最後一個項目之間換行的新模式。

1.6 中的新 PipsPager 包裝模式

  • RatingControl 現在透過將一些硬式編碼樣式屬性移至主題資源,可更自定義。 這可讓應用程式覆寫這些值,以更妥善地自定義 RatingControl 的外觀。
1.6 中的新 RatingControl 自定義
  • WinUI 3 已變更為字型選取的印刷樣式模型,而不是舊版粗細/延展/樣式模型。 某些較新的字型需要印刷模型,包括 Segoe UI 變數,並啟用增強的字型功能。 某些依賴粗細/伸展/樣式模型的較舊字型可能無法使用印刷樣式模型來選取。

已知問題

  • 如果調試程式設定為在所有C++例外狀況上中斷,它會在BCP47 (Windows Globalization) 程式代碼的啟動時中斷某些嘈雜的例外狀況。 如需詳細資訊,請參閱 GitHub 問題 #4691
  • 參考 WinAppSDK 1.6 套件的元件庫套件將無法正確取得參考的 WebView2 套件內容。 如需詳細資訊,請參閱 WebView2Feedback #4743。 因應措施是視需要新增套件的 Microsoft.Web.WebView2 直接參考。
  • 使用原生 AOT 編譯的應用程式有時會在頁面流覽之後遇到懸而未決的問題,因為 .NET 運行時間的 GC 線程中有競爭條件。 如需詳細資訊,請參閱 .NET 問題 #104582
  • 1.6.0 的初始版本引進了一個相依性問題,我們預期會在即將推出的 .NET SDK 版本中解決。 如果您在 Microsoft.Windows.SDK.NET 參考的版本發生錯誤,您必須明確參考錯誤訊息所指定的 .NET SDK 版本。 例如,如果錯誤指出您需要 10.0.19041.38 版,請將下列內容新增至您的 .csproj 檔案:
    • <WindowsSdkPackageVersion>10.0.19041.38</WindowsSdkPackageVersion>.

錯誤修正

  • 已修正在 .xaml 中設定 InfoBar.IsOpen 時的當機。 如需詳細資訊,請參閱 GitHub 問題 #8391
  • 修正當滑鼠移至界限外 WebView2 時,HTML 元素會遺失指標擷取的問題。 如需詳細資訊,請參閱 GitHub 問題 #8677
  • 已修正使用 拖放到飛出視窗 ShouldConstrainToRootBounds=false 無法運作的問題。 如需詳細資訊,請參閱 GitHub 問題 #9276
  • 已修正啟用時PublishSingleFile參考無法運作的問題ms-appx://。 如需詳細資訊,請參閱 GitHub 問題 #9468
  • 已修正某些二進位檔調試程式符號無法正常運作的問題。 如需詳細資訊,請參閱 GitHub 問題 #4633
  • 已修正子類別 NavigationView化 時的潛在損毀。
  • 已修正卷動或減少數據表大小時,中的表格框線 RichEditBox 無法正確清除的問題。
  • 已修正來自 MediaTransportControls 的飛出視窗具有完全透明背景的問題。
  • 已修正拖曳至 WebView2 會在 100% 以外的顯示縮放比例或啟用系統文字調整時,於顯示縮放比例錯誤的位置失敗或下降的問題。
  • 已修正當輸入因為限制而封鎖輸入時,不會向輔助功能工具宣告的問題TextBoxRichEditBox/。MaxLength
  • 修正了處理自定義標題欄案例的幾個問題。 如需詳細資訊,請參閱 GitHub 問題 #7629#9670#9709#8431
  • 已修正無法看見圖示的問題 InfoBadge 。 如需詳細資訊,請參閱 GitHub 問題 #8176
  • 已修正圖示有時會在中的 CommandBarFlyout錯誤位置顯示的問題。 關於更多資訊,請參閱 GitHub 問題 #9409
  • 已修正在功能表開啟或關閉子功能表時鍵盤焦點的問題。 如需詳細資訊,請參閱 GitHub 問題 #9519
  • 已修正回收專案時使用不正確IsExpanded狀態的問題TreeView。 如需詳細資訊,請參閱 GitHub 問題 #9549
  • 已修正在 中使用 ItemsRepeater.ItemTemplateElementName 系結時的問題。 如需詳細資訊,請參閱 GitHub 問題 #9715
  • 已修正有時位置不正確時,第一個項目 ItemsRepeater 的問題。 如需詳細資訊,請參閱 GitHub 問題 #9743
  • 已修正有時中斷輸入到min/max/close 按鈕的問題 InputNonClientPointerSource 。 如需詳細資訊,請參閱 GitHub 問題 #9749
  • 已修正搭配 clang-cl 使用 Microsoft.UI.Interop.h 時的編譯錯誤。 如需詳細資訊,請參閱 GitHub 問題 #9771
  • 已修正事件無法在 中ComboBox/TextBox運作的問題。CharacterReceived 如需詳細資訊,請參閱 GitHub 問題 #9786
  • 已修正箭號鍵和索引標籤索引鍵引發重複 KeyUp 事件的問題。 如需詳細資訊,請參閱 GitHub 問題 #9399
  • 已修正無法取得 SystemSuspendStatus事件的問題PowerManager.SystemSuspendStatusChanged。 如需詳細資訊,請參閱 GitHub 問題 #2833
  • 已修正當這是視窗唯一控制件時,未正確指定 WebView2 初始鍵盤焦點的問題。
  • 已修正當使用 ExtendsContentIntoTitleBar=true Min/Max/Close 按鈕未正確出現在 使用者介面自動化 時的問題,導致語音存取無法顯示這些按鈕的數位。
  • 已修正應用程式因非預期重新進入而在鎖定檢查中當機的問題。
  • 修正切換至高對比度主題時,色彩未正確更新的問題 Hyperlink
  • 已修正在背景視窗中變更 的集合 ListView 可能會不正確地將該視窗移至前景並取得焦點的問題。
  • 已修正呼叫 ItemsRepeater.StartBringIntoView 有時可能會導致專案消失的問題。
  • 已修正在 中ButtonScrollViewer觸控和拖曳會讓其處於已按下狀態的問題。
  • 已更新 IntelliSense,其中遺漏許多較新類型和成員的資訊。
  • 已修正在 空白區域中 ScrollViewer 按兩下時,一律會將焦點移至中的 ScrollViewer 第一個可設定焦點控制件,並將該控件捲動到檢視中的問題。 如需詳細資訊,請參閱 GitHub 問題 #597
  • 已修正事件有時會引發多次的問題 Window.Activated 。 如需詳細資訊,請參閱 GitHub 問題 #7343
  • 已修正設定 NavigationViewItem.IsSelected 屬性以防止 true 其子系在展開時顯示的問題。 如需詳細資訊,請參閱 GitHub 問題 #7930
  • 已修正無法正確顯示具有 NoneDropShadow 邊緣效果的標題的問題MediaPlayerElement。 如需詳細資訊,請參閱 GitHub 問題 #7981
  • 已修正顯示飛出視窗時未使用 屬性的問題 Flyout.ShowMode 。 如需詳細資訊,請參閱 GitHub 問題 #7987
  • 已修正有時會有四捨五入錯誤的問題 NumberBox 。 如需詳細資訊,請參閱 GitHub 問題 #8780
  • 已修正使用針對舊版 WinAppSDK 編譯的連結庫可能會發生嘗試尋找類型或屬性時發生錯誤的問題。 如需詳細資訊,請參閱 GitHub 問題 #8810
  • 已修正啟動視窗時未設定初始鍵盤焦點的問題。 如需詳細資訊,請參閱 GitHub 問題 #8816
  • 修正了第一次顯示之後無法運作的問題 FlyoutShowMode.TransientWithDismissOnPointerMoveAway 。 如需詳細資訊,請參閱 GitHub 問題 #8896
  • 已修正某些控制件未正確範本系結 ForegroundBackground 屬性的問題。 如需詳細資訊,請參閱 GitHub 問題 #7070#9020#9029#9083#9102
  • 修正了 setter 中VisualStateManager所使用的 不會在主題變更時更新的問題ThemeResource。 這在飛出視窗中通常受影響的控件。 如需詳細資訊,請參閱 GitHub 問題 #9198
  • WebView已修正會失去主要焦點的問題,導致額外的模糊/焦點事件和其他問題。 如需詳細資訊,請參閱 GitHub 問題 #9288
  • 已修正在偵錯輸出中顯示系結錯誤的問題 NavigationView 。 如需詳細資訊,請參閱 GitHub 問題 #9384
  • 修正了定義負面檢視框的SVG檔案不再轉譯的問題。 如需詳細資訊,請參閱 GitHub 問題 #9415
  • 已修正變更 ItemsView.Layout 方向導致移除項目的問題。 如需詳細資訊,請參閱 GitHub 問題 #9422
  • 已修正捲 ScrollView 動產生大量偵錯輸出的問題。 如需詳細資訊,請參閱 GitHub 問題 #9434
  • 已修正無法正常運作的問題 MapContorl.InteractiveControlsVisible 。 如需詳細資訊,請參閱 GitHub 問題 #9486
  • 已修正事件未正確引發的問題 MapControl.MapElementClick 。 如需詳細資訊,請參閱 GitHub 問題 #9487
  • 已修正在使用弱式參考之前,x:Bind 未檢查 Null 的問題,這可能會導致當機。 如需詳細資訊,請參閱 GitHub 問題 #9551
  • 已修正變更 TeachingTip.Target 屬性未正確更新其位置的問題。 如需詳細資訊,請參閱 GitHub 問題 #9553
  • 已修正下拉式清單未在 WebView2 中回應的問題。 如需詳細資訊,請參閱 GitHub 問題 #9566
  • 已修正使用 GeometryGroup時的記憶體流失。 如需詳細資訊,請參閱 GitHub 問題 #9578
  • 修正在 中捲動大量專案ItemRepeaterScrollView可能會導致空白轉譯畫面的問題。 如需詳細資訊,請參閱 GitHub 問題 #9643
  • 已修正無法運作的問題 SceneVisual

1.6.0 中的新 API

1.6.0 版包含下列與穩定 1.5 版相比的新 API:

Microsoft.UI

    ColorHelper
        ToDisplayName
Microsoft.UI.Input

    EnteredMoveSizeEventArgs
    EnteringMoveSizeEventArgs
    ExitedMoveSizeEventArgs
    InputNonClientPointerSource
        EnteredMoveSize
        EnteringMoveSize
        ExitedMoveSize
        WindowRectChanged
        WindowRectChanging

    MoveSizeOperation
    WindowRectChangedEventArgs
    WindowRectChangingEventArgs
Microsoft.UI.Xaml

    XamlRoot
        CoordinateConverter
Microsoft.UI.Xaml.Automation.Peers

    ScrollPresenterAutomationPeer
Microsoft.UI.Xaml.Controls

    PipsPager
        WrapMode
        WrapModeProperty

    PipsPagerWrapMode
    TabView
        CanTearOutTabs
        CanTearOutTabsProperty
        ExternalTornOutTabsDropped
        ExternalTornOutTabsDropping
        TabTearOutRequested
        TabTearOutWindowRequested

    TabViewExternalTornOutTabsDroppedEventArgs
    TabViewExternalTornOutTabsDroppingEventArgs
    TabViewTabTearOutRequestedEventArgs
    TabViewTabTearOutWindowRequestedEventArgs
Microsoft.Windows.Globalization

    ApplicationLanguages
Microsoft.Windows.Management.Deployment

    EnsureReadyOptions
        RegisterNewerIfAvailable

    PackageDeploymentFeature
    PackageDeploymentManager
        IsPackageDeploymentFeatureSupported
        IsPackageProvisioned
        IsPackageProvisionedByUri
        IsPackageReadyOrNewerAvailable
        IsPackageReadyOrNewerAvailableByUri
        IsPackageSetProvisioned
        IsPackageSetReadyOrNewerAvailable

    PackageReadyOrNewerAvailableStatus
Microsoft.Windows.Storage

    ApplicationData
    ApplicationDataContainer
    ApplicationDataContract
    ApplicationDataCreateDisposition
    ApplicationDataLocality