Windows App SDK 0.8 的稳定通道发行说明

稳定通道提供支持在生产环境中供应用使用的 Windows App SDK 版本。 使用 Windows App SDK 稳定版本的应用还可以发布到 Microsoft Store。

重要链接

最新稳定通道版本:

下载 Windows App SDK

注意

Windows App SDK Visual Studio 扩展 (VSIX) 已不再作为单独的下载进行分发。 它们可在 Visual Studio 内的 Visual Studio Marketplace 中使用。

版本 0.8

Windows App SDK 稳定渠道的 0.8.x 世系的最新可用版本为版本 0.8.12。

注意

Windows App SDK 曾经的代号为 Project Reunion。 版本 0.8 及更早版本中的一些 SDK 资产仍使用该代号。 当引用现有资产或指定的早期版本时,文档的某些部分仍会采用 Project Reunion

版本 0.8.12

这是 Windows App SDK 的服务版本,其中包含针对版本 0.8.0 的关键 bug 修复。

注意

C# 开发人员需要以下 .NET SDK 版本之一:5.0.213、5.0.407、6.0.104、6.0.202(或更高版本)。 要更新 .NET SDK 版本,请访问 .NET 下载或更新到最新版本的 Visual Studio。 在没有所需 .NET SDK 版本的情况下更新 NuGet 包时,你会看到如下错误:“此 WindowsAppSDK 版本需要 WinRT.Runtime.dll 版本 1.6 或更高版本。”

Bug 修复 (0.8.12)

版本 0.8.11

这是 Windows App SDK 的服务版本,其中包含针对版本 0.8.0 的关键 bug 修复。

注意

C# 开发人员需要以下 .NET SDK 版本之一:5.0.213、5.0.407、6.0.104、6.0.202(或更高版本)。 要更新 .NET SDK 版本,请访问 .NET 下载或更新到最新版本的 Visual Studio。 在没有所需 .NET SDK 版本的情况下更新 NuGet 包时,你会看到如下错误:“此 WindowsAppSDK 版本需要 WinRT.Runtime.dll 版本 1.6 或更高版本。”

Bug 修复 (0.8.11)

  • 修复了使用鼠标选择文本时导致触发“失去焦点”事件的回归问题。

版本 0.8.10

这是 Windows App SDK 的服务版本,其中包含针对版本 0.8.0 的关键 bug 修复。

注意

C# 开发人员需要以下 .NET SDK 版本之一:5.0.213、5.0.407、6.0.104、6.0.202(或更高版本)。 要更新 .NET SDK 版本,请访问 .NET 下载或更新到最新版本的 Visual Studio。 在没有所需 .NET SDK 版本的情况下更新 NuGet 包时,你会看到如下错误:“此 WindowsAppSDK 版本需要 WinRT.Runtime.dll 版本 1.6 或更高版本。”

Bug 修复 (0.8.10)

  • 修复了在拖放操作期间导致应用有时崩溃的问题。

注意

Windows App SDK 0.8.9 未发布。 在 0.8.8 之后直接发布的版本为 0.8.10。

版本 0.8.8

这是 Windows App SDK 的服务版本,其中包含针对版本 0.8.0 的关键 bug 修复。

注意

C# 开发人员需要使用以下 .NET SDK 版本之一(或更高版本):6.0.202、6.0.104、5.0.407、5.0.213。 要更新 .NET SDK 版本,请访问 .NET 下载或更新到最新版本的 Visual Studio。 在没有所需 .NET SDK 版本的情况下更新 NuGet 包时,你会看到如下错误:“此 WindowsAppSDK 版本需要 WinRT.Runtime.dll 版本 1.6 或更高版本。”

Bug 修复 (0.8.8)

  • 修复了 TextBox 中有关软键盘和一般交互的触摸输入问题。 这些问题也影响了键盘快捷方式。 有关详细信息,请参阅 GitHub 上的问题 6291
  • 修复了应用窗口在处于活动状态时,有时显示为非活动状态的问题。
  • 修复了在外部进程中运行的 UIA(UI 自动化)导致的性能问题。
  • 修复了笔输入导致的应用稳定性问题。
  • 修复了 UIA 导致菜单中的 png 图标呈现显著延迟的问题。

版本 0.8.7

这是 Windows App SDK 的服务版本,其中包含针对 C#/.NET 应用程序的多个性能更新。 要更新到此版本,需要引用最新的 Windows SDK 包版本。 为此,请将属性 <WindowsSdkPackageVersion>10.0.<sdk_version>.24</WindowsSdkPackageVersion> 添加到 .csproj 文件,并从该文件中的 TargetFramework 属性添加应用所面向的 SDK 版本。 例如:

<Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
       <OutputType>WinExe</OutputType>
       <TargetFramework>net6.0-windows10.0.19041.0</TargetFramework>
       <TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
       <WindowsSdkPackageVersion>10.0.19041.24</WindowsSdkPackageVersion>
   <PropertyGroup>
   ...

在即将发布的 .NET 6 服务版本中将提供此版本的 Windows SDK 投影。 在 .NET SDK 更新可用后,应该从项目文件中删除 <WindowsSdkPackageVersion> 属性。

如果不设置此属性,将会出现如下错误:"Error: This version of Project Reunion requires WinRT.Runtime.dll version 1.6 or greater."

版本 0.8.6

这是 Windows App SDK 的服务版本,包含针对 0.8.0 版本的适用于 C#/.NET 应用程序的多个性能改进。

要更新到此版本的 Windows App SDK,需要安装最新的 .NET SDK 12 月更新(请参阅下载 .NET2022 年 5 月 10 日将结束对 .NET 5 的支持)。 如果没有安装最低所需版本的 .NET SDK,则会看到类似于 "Error: This version of Project Reunion requires WinRT.Runtime.dll version 1.4 or greater."

Bug 修复 (0.8.6)

有关性能改进的详细列表,请参阅 C#/WinRT 1.4.1 发行说明

版本 0.8.5

这是 Windows App SDK 的服务版本,包含针对 0.8.0 版本的更多关键 bug 修复。

Bug 修复 (0.8.5)

  • 修复了导致使用指针输入的 WinUI 应用崩溃的问题。
  • 修复了在 Windows 11 上导致标题栏按钮(最小化、最大化、关闭)没有圆角的问题。
  • 修复了在 Windows 11 中将鼠标悬停在最大化/还原按钮上时导致布局大小调整选项不出现的问题。
  • 修复了在创建 PointCollection 对象时导致崩溃异常的问题。 有关详细信息,请参阅 Github 上的问题 971

版本 0.8 的限制和已知问题也适用于版本 0.8.5,除非在下面部分中另有说明。

版本 0.8.4

这是 Windows App SDK 的服务版本,包含针对 0.8.0 版本的更多关键 bug 修复。

Bug 修复 (0.8.4)

  • 修复了自定义标题栏,以便 ContentDialog 不会覆盖它,并且标题栏按钮会呈现圆角。
  • 修复了更改显示缩放时图像处理中的崩溃。
  • 修复了 UI 消失或是未正确剪裁的剪裁 bug

版本 0.8 的限制和已知问题也适用于版本 0.8.4,除非在下面部分中另有说明。

版本 0.8.3

这是 Windows App SDK 的服务版本,包含针对 0.8.0 版本的更多关键 bug 修复。

Bug 修复 (0.8.3)

最小化窗口后还原时,键盘焦点丢失,需要单击鼠标以还原焦点。

版本 0.8 的限制和已知问题也适用于版本 0.8.3,除非在下面部分中另有说明。

版本 0.8.2

这是 Windows App SDK 的服务版本,包含针对 0.8.0 版本的更多关键 bug 修复。

Bug 修复 (0.8.2)

  • Windows 2022 预览版 2 及更高版本中现在支持 Windows App SDK 和 WinUI 3。
  • 对于 .NET 应用,在传入枚举数组时,可能会收到以下错误:Object contains non-primitive or non-blittable data.
  • 在文本框内使用手写面板进行编写会导致崩溃
  • 图标/图像始终以 100% 缩放值加载,而不是基于监视器缩放值
  • EventSource<T> 的垃圾回收导致处理程序取消订阅后续失败(请参阅 GitHub 问题以了解更多详细信息)
  • 安全修复 - 有关更多详细信息,请参阅 CVE-2021-34533
  • SwapChainPanel.CompositionScaleChanged 有时会在更改显示缩放后返回不正确的 CompositionScale 值

版本 0.8 的限制和已知问题也适用于版本 0.8.2,除非在下面部分中另有说明。

版本 0.8.1

这是 Windows App SDK 的服务版本,包含针对 0.8.0 版本的一些关键 bug 修复。

Bug 修复 (0.8.1)

  • Windows App SDK 无法在最新 Windows 预览体验成员版本上运行
  • 输入在下拉列表中未出现的值时,EditableComboBox 中发生崩溃
  • 收到焦点后,WebView2 不允许用户按 Tab 键退出
  • 在 WinUI 生成的代码中完全限定 Windows.Foundation.Metadata.DefaultOverload 命名空间,以避免命名空间多义性
    • 这修复了 bug #5108
  • 安全修复 - 有关更多详细信息,请参阅 CVE-2021-34489

版本 0.8 的限制和已知问题也适用于版本 0.8.1,除非在下面部分中另有说明。

版本 0.8.0 稳定版

新功能和更新

此版本支持所有稳定通道功能

WinUI 3

此版本包括许多 bug 修复,并改进了在 WinUI 3 中的稳定性。 这些是自 WinUI 3 - Project Reunion 0.5 发布以来 WinUI 3 中的所有新更改:

  • 透视控件已重新添加,现在可以在任何 WinUI 3 应用中使用。

  • 此版本包含来自 Project Reunion v0.5.5、v0.5.6 和 v0.5.7 的所有 bug 修复。

  • 新 bug 修复,包括:

    • 用鼠标右键单击 TextBox 会导致应用程序崩溃
    • NavigationView 导致 UWP 出现崩溃,Reunion 0.5 预览版
    • 进度栏不显示“暂停”和“错误”选项之间的区别
    • 复制/粘贴/更改文本样式时 RichEditBox 中发生崩溃
    • SetTitleBar 未设置或为 null 时,窗口标题按钮放置到错误位置

    有关此版本中解决的 bug 的完整列表,请参阅我们的 GitHub 存储库

  • ColorHelper.ToDisplayName API 不再可用。

  • 以下类型已删除:

    • Microsoft.Graphics.IGeometrySource2D
    • Microsoft.Graphics.IGeometrySource2DInterop

    请改用 Windows.Graphics.IGeometrySource2DWindows.Graphics.IGeometrySource2DInterop

  • Microsoft.System 命名空间中的所有类型都已移到 Microsoft.UI.Dispatching 命名空间,包括 DispatcherQueue 类

  • AcrylicBrush.BackgroundSource 属性已删除,因为 WinUI 3 不支持将 HostBackdrop 作为 BackgroundSource

有关 WinUI 的详细信息,请参阅 WinUI

要查看 WinUI 3 控件和功能的运行情况,可从 GitHub 克隆并生成 WinUI 3 库应用,或从 Microsoft Store 下载应用。

要开始使用 WinUI 进行开发,请查看以下文章:

DWriteCore:

此版本的 DWriteCore 包括以下新增功能和更新的功能。 DWriteCore 概述中介绍了 DWriteCore 并进行了说明。

注意

DWriteCoreCreateFactory 在功能上与 DirectWrite 系统版本导出的 DWriteCreateFactory 函数相同。 DWriteCore 函数具有不同名称,以避免在链接 DWriteCore.libDWrite.lib 时出现多义性。

有关 DWriteCore 和 DirectWrite API 参考,请参阅 DWriteCore API 参考DirectWrite API 参考

MRTCore:

  • 在向项目添加资源时会自动设置资源的生成操作,从而减少了手动项目配置需求。

限制

  • Windows 预览体验计划的开发频道上当前不支持此版本。 这在版本 0.8.1 中得到修复

  • 桌面应用(C# 或 C++ 桌面):仅支持在使用 MSIX 打包的桌面应用(C++ 或 C#)中使用此版本。 要在未打包桌面应用中使用 Windows App SDK,必须使用实验版通道

重要

如果使用的是 UWP 应用,请参阅从 UWP 迁移到 Windows App SDK

已知问题

  • 版本 0.8 及更高版本中的 WinUI 3 工具(如实时可视化树、实时属性资源管理器和热重载)需要 Visual Studio 2019 16.11 预览版 3 及更高版本。

  • 当前使用 WinUI 3 和 Windows App SDK 0.8 的应用无法使用利用 Project Reunion 0.5 的类库。 更新类库以使用 Windows App SDK 0.8。

  • .NET 应用必须面向内部版本 18362 或更高版本:TFM 必须设置为 net6.0-windows10.0.18362 或更高版本,并且打包项目必须设置为 18362 或更高版本。 有关详细信息,请参阅 GitHub 问题 #921

  • 在浅色与深色模式之间频繁切换时,可能会遇到崩溃。

  • 对于 .NET 应用,在传入枚举数组时可能会收到以下错误: Object contains non-primitive or non-blittable data. 这是在版本 0.8.2 中修复的。

  • 对于 .NET 应用,当前无法选择退出使用 Visual Studio UI 将图像作为应用资源来编制索引。 要解决此问题,请将 Directory.Build.targets(请参阅自定义生成 - Visual Studio 以了解说明)添加到项目并删除图像,如下所示:

    • 要删除特定图像(请注意,需要相对路径),请执行以下操作:

      <Project>
      <ItemGroup>
          <Content Remove="..\Bitmap1.bmp" />
      </ItemGroup>
      </Project>
      
      • 要基于元数据删除图像,请执行以下操作:
      <Project>
      <ItemGroup>
          <Content Remove="@(None->WithMetadataValue('Pack','true'))" />
      </ItemGroup>
      </Project>
      

      计划在即将发布的版本中对此问题进行修复 — 届时,将不再需要以上解决方法。