Windows 应用 SDK 1.0 的预览通道发行说明

重要

预览通道不支持在生产环境中使用,并且无法将使用预览版本的应用发布到 Microsoft Store。

此预览通道包括 Windows App SDK 的多个版本,其中附带处于开发后期阶段的预览通道功能。 预览版本不含实验功能和 API,但在下一稳定版本之前仍可能会出现重大更改。

重要链接

最新预览频道版本:

最新的稳定频道版本:

版本 1.0 预览版 3 (1.0.0-preview3)

预览版 3 是 Windows 应用 SDK 版本 1.0 的预览通道的最新版本。 预览版 3 支持的所有 预览频道功能。

下载 1.0 预览版 3 Visual Studio 扩展 (VSIX)

注释

如果已安装 Windows App SDK Visual Studio 扩展(VSIX),请在安装新版本之前卸载它们。 关于操作指南,请参阅 管理 Visual Studio 扩展

从下表中,可以下载适用于 1.0 预览版 3 的 Visual Studio 扩展(VSIX)。 有关所有版本,请参阅 最新的 Windows 应用 SDK 下载。 如果尚未这样做,请首先按照 Windows 应用 SDK的安装工具中的步骤配置您的开发环境。

以下扩展专为编程语言和 Visual Studio 版本定制。

1.0 预览版 3 下载 说明
C# Visual Studio 2019 扩展 使用 Windows App SDK Visual Studio 2019 扩展生成 C# 应用。
Visual Studio 2019 C++ 扩展 使用 Windows 应用 SDK Visual Studio 2019 扩展生成C++应用。
C# Visual Studio 2022 插件 使用 Windows App SDK Visual Studio 2022 扩展生成 C# 应用。
Visual Studio 2022 C++ 扩展 使用 Windows 应用 SDK Visual Studio 2022 扩展生成C++应用。
.exe 安装程序和 MSIX 包 使用 .exe 安装程序和 MSIX 包将 Windows 应用 SDK 与应用一起部署。

以下部分介绍 1.0 预览版 3 的新功能和更新的功能、限制和已知问题。

WinUI 3 (1.0.0-preview3)

现在支持在没有 MSIX 打包的情况下部署 WinUI 3 应用。 请参阅 创建第一个 WinUI 3 (Windows 应用 SDK) 项目 ,将 WinUI 3 应用程序配置为支持未打包的部署。

重要限制:

  • 未打包的 WinUI 3 应用程序 仅在 Windows 版本 1909 及更高版本上受支持
  • x86 和 x64支持解压缩的 WinUI 3 应用程序;arm64 支持将在下一个稳定版本中添加。
  • 用于 Visual Studio 2019Visual Studio 2022 的单项目 MSIX 打包工具 是未封装应用程序的必需工具。
  • 在未打包的应用中,可能会收到安装 .NET 3.5 的提示;如果这样做,则可以忽略它。
  • 未打包的应用中当前不支持某些 API。 我们的目标是在下一个稳定版本中解决此问题。 几个示例:
  • ListView、CalendarView 和 GridView 控件使用不正确的样式,我们的目标是在下一个稳定版本中解决此问题。

有关详细信息,或开始使用 WinUI 3 进行开发,请参阅:

其他限制和已知问题:

  • Windows 10 版本 1809 不支持解压缩的应用。 我们计划在稳定通道的下一个版本中修复此问题。

  • 如果未安装 C++ UWP 工具,则 C# 单项目 MSIX 应用无法编译。 如果你有 C# 单项目 MSIX 项目,则需要安装 C++ (v14x) 通用 Windows 平台工具 可选组件。

  • 此版本引入了适用于 C# 和 C++ 的 空白应用(打包版 WinUI 3) 项目模板。 通过这些模板,可以在不使用单独的打包项目的情况下将应用构建到 MSIX 包中(请参阅 使用单项目 MSIX 打包应用)。 这些模板在此版本中存在一些已知问题:

    • 缺少“发布”菜单项,直到重启 Visual Studio。 在 Visual Studio 2019 和 Visual Studio 2022 中使用 空白应用、打包(桌面中的 WinUI 3) 项目模板创建新应用时,在关闭并重新打开 Visual Studio 之前,发布项目的命令不会显示在菜单中。

    • 使用单项目 MSIX 打包向C++应用添加C++静态/动态库项目引用时出错。 Visual Studio 显示无法将项目添加为引用的错误,因为项目类型不兼容。

    • 在类库项目中引用自定义用户控件时发生 错误。 应用程序将崩溃,并出现系统找不到指定路径的错误。

    • Visual Studio 2019中的 C# 或 C++ 模板。 尝试生成项目时,将遇到错误“项目不知道如何运行配置文件 项目名称”。 若要解决此问题,请安装 单项目 MSIX 打包工具扩展

    • C# 模板适用于 Visual Studio 2019 和 Visual Studio 2022。 在 Visual Studio 中,当你 启动调试启动而不调试,如果你的应用未部署和运行(并且 Visual Studio 没有反馈),则单击 解决方案资源管理器中的项目节点 将其选中,然后重试。

    • C# 模板适用于 Visual Studio 2019 和 Visual Studio 2022。 尝试在开发计算机上运行或调试项目时,将遇到以下错误:“需要部署项目,然后才能进行调试。 请在 Configuration Manager 中启用“部署”。若要解决此问题,请在 Configuration Manager 中为项目启用部署。 有关详细说明,请参阅 创建第一个 WinUI 3 (Windows 应用 SDK) 项目

    • Visual Studio 2022 版本 17.0 的 C++ 模板,最高为预览版 4。 首次尝试运行项目时遇到以下错误:“部署错误”。 若要解决此问题,请再次运行或部署项目。 此问题将在 Visual Studio 2022 版本 17.0 预览版 7 中修复。

  • 不支持任何 CPU 生成配置:将 Windows 应用 SDK 添加到 支持 任何 CPU 的现有 .NET 应用程序或组件时,必须指定所需的体系结构: x86x64arm64

  • 使用 1.0 预览版 3 的 C# 项目必须使用以下 .NET SDK:.NET 6 SDK 或更高版本(请参阅 下载 .NET.NET 5 将于 2022 年 5 月 10 日终止支持)。

  • DispatcherQueue.TryEnqueue(用于在调度程序队列线程上恢复执行)的替代方法是在 Windows 实现库(WIL)中使用resume_foreground帮助程序函数:

    1. 将您的项目引用添加到 Microsoft.Windows.ImplementationLibrary NuGet 包中。
    2. #include <wil/cppwinrt_helpers.h> 添加到 pch.h
    3. #include <winrt/Microsoft.UI.Dispatching.h> 添加到 pch.h
    4. 现在 co_await wil::resume_foreground(your_dispatcherqueue);

影响 1.0 预览版 1 和预览版 2 的重要问题

Windows 应用 SDK 版本 1.0 预览版 1 和预览版 2 包含一种机制,用于在卸载该应用时清理打包应用所做的任何环境变量更改。 此功能处于实验状态,第一个版本包含可损坏系统 PATH 环境变量的已知 bug。

预览版 1 和预览版 2 会损坏包含扩展字符的任何 % 环境变量。 无论该应用是否使用 Windows 应用 SDK,只要卸载任何打包的应用,都会发生这种情况。

另请参阅 PATH 环境变量损坏问题

详细信息

系统 PATH 条目存储在以下 Windows 注册表项中的 Path 值中:

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

如果启动注册表编辑器(regedit.exe),则可以将上面的路径复制并粘贴到痕迹栏(菜单栏正下方),然后按 Enter 找到键。

该键 路径 值应 为类型 REG_EXPAND_SZ,但 bug 会将其更改为 REG_SZ。 这样,如果系统 PATH 环境变量包含变量扩展字符 %,则它不可用。

受影响的版本

缓解措施

若要使计算机重新进入良好状态,请执行以下步骤:

  1. 检查注册表中的 PATH 是否已损坏,如果是,请通过运行下面的脚本来重置它。

    可以使用以下 Windows PowerShell 脚本完成步骤 1(PowerShell Core 不起作用)。 运行提升权限。

    # This script must be run from an elevated Windows PowerShell
    # window (right-click Windows PowerShell in the Start menu,
    # and select Run as Administrator).
    
    # If the PATH in the Registry has been set to REG_SZ, then delete
    # it, and recreate it as REG_EXPAND_SZ.
    
    $EnvPath = 'Registry::HKLM\System\CurrentControlSet\Control\Session Manager\Environment'
    $Environment=Get-Item $EnvPath
    $PathKind = $Environment.GetValueKind('Path')
    
    if ($PathKind -ne 'ExpandString') {
      $Path = $Environment.GetValue('Path')
      Remove-ItemProperty $EnvPath -Name Path
      New-ItemProperty $EnvPath -Name Path -PropertyType ExpandString -Value $Path
    }
    
  2. 卸载使用 Windows 应用 SDK 1.0 预览版 1 或预览版 2 的所有应用(请参阅以下脚本)。

  3. 卸载 Windows 应用 SDK 1.0 Preview1/Preview2 包,包括包含 bug 的包(请参阅以下脚本)。

    可以使用以下 Windows PowerShell 脚本完成步骤 2 和 3(PowerShell Core 不起作用)。 运行提升权限。

    # This script must be run from an elevated Windows PowerShell
    # window (right-click Windows PowerShell in the Start menu,
    # and select Run as Administrator).
    
    # Remove the Windows App SDK 1.0 Preview1/2, and all apps that use it.
    
    $winappsdk = "Microsoft.WindowsAppRuntime.1.0-preview*"
    Get-AppxPackage | Where-Object { $_.Dependencies -like $winappsdk } | Remove-AppxPackage
    Get-AppxPackage $winappsdk | Remove-AppxPackage
    

Windows 应用 SDK 1.0 预览版 3 中的修复

即将发布的 Windows 应用 SDK 1.0 预览版 3 中将删除导致 PATH 环境变量损坏的功能。 当所有 bug 都已修复并经过全面测试时,可能会在以后重新引入它。

建议使用版本 1.0 预览版 3

版本 1.0 预览版 2 (1.0.0-preview2)

重要

版本 1.0 预览版 1 和预览版 2 包含一个关键 bug。 如果已安装其中一个预览版,请参阅 如何解决此问题。 建议改用版本 1.0 预览版 3

这是版本 1.0 的预览频道的最新发布版本。 它支持的所有 预览频道功能。

以下部分介绍此版本的新增功能和更新的功能、限制和已知问题。

WinUI 3 (1.0.0-preview2)

新更新

  • 控件已更新,以反映 WinUI 2.6 中的最新 Windows 样式。
  • 支持单项目 MSIX。
  • WinUI 3 包现在可以支持构建 17763 及更高版本。 有关详细信息,请参阅 问题 #921
  • 支持应用内工具栏。 但是,应用内工具栏和现有的热重载/实时可视化树的支持需要即将推出的 Visual Studio 17.0 版的第 5 次预览,该版本预计将在 10 月晚些时候提供。

Bug 已修复:WebView2Runtime 文本现已本地化。

要了解详细信息或者开始使用 WinUI 3 进行开发,请参阅:

窗口化 (1.0.0-preview2)

此版本引入了 AppWindow 类的更新。 此版本中没有添加的主要新功能,但方法名称、属性和某些返回值的更改已被删除。 有关详细更新,请参阅文档和示例。 如果在 1.0 实验版或 1.0 预览版 1 版本中使用 AppWindow ,则预期对代码进行了一些更改。

新更新

  • AppWindowConfiguration 类已删除。 该类的属性现在可用于 AppWindow 本身或 Presenter 类。
  • 已删除此空间中 WinRT API 方法的大多数 bool 返回值,现在 void,因为这些方法始终会成功。
  • 不再需要 C# 的 ImportDll 调用来处理 GetWindowIdFromWindowGetWindowFromWindowId。 请改用 Microsoft.UI.Win32Interop 类中提供的 .NET 包装器方法。

重要限制

  • Windows 应用 SDK 当前不提供将 UI 框架内容附加到 AppWindow 的方法;只能使用 HWND 互作访问方法。
  • 窗口标题栏自定义仅适用于 Windows 11。 使用 IsCustomizationSupported 方法以检查是否支持标题栏自定义功能。 我们打算将此功能降低级别。

有关详细信息,请参阅管理应用窗口(Windows 应用 SDK)。

输入 (1.0.0-preview2)

新更新

  • 改进了对精确触摸板输入的支持。

重要限制

  • 已删除所有 PointerPoint 静态工厂函数:GetCurrentPointGetCurrentPointTransformedGetIntermediatePointsGetIntermediatePointsTransformed
  • Windows 应用 SDK 不支持通过指针 ID 检索 PointerPoint 对象。 相反,可以使用 PointerPoint 成员函数 GetTransformedPoint 检索现有 PointerPoint 对象的转换版本。 对于中间点,可以使用 PointerEventArgs 成员函数 GetIntermediatePointsGetTransformedIntermediatePoints。 有关更多详细信息,请参阅文档。

MRT Core (1.0.0-preview2)

新更新

  • 应用开发人员现在可以选择不将图像文件或 RESW 文件编入 .NET 项目中 PRI 文件的索引。 有关详细信息,请参阅 问题 980

重要限制

  • 在 .NET 项目中,如果应用程序已被构建,复制粘贴到项目文件夹中的资源文件在按下 F5 键时不会被编入索引。 解决方法是重新生成应用。 有关详细信息,请参阅 问题 1503 ]。
  • 在 .NET 项目中,如果没有手动设置生成作,则不会为从外部文件夹添加的现有资源文件编制索引。 若要解决此问题,请在 Visual Studio 中,将图像文件的生成操作设置为 Content,将 RESW 文件的生成操作设置为 PRIResource。 有关详细信息,请参阅问题 1504

未打包应用的部署

新功能

  • Windows 应用 SDK 1.0 预览版 2 引入了引导程序 API 的 .NET 包装器(请参阅 使用 Windows 应用 SDK 运行时于打包至外部位置或未打包的应用)。 引导程序 API 是一组本机 C/C++ 函数,未打包的应用程序必须在运行时使用这些函数来动态依赖 Windows 应用 SDK 框架包。 .NET 包装器提供了从 .NET 应用(包括 Windows 窗体和 WPF 应用)调用引导程序 API 的更简单方法。 引导程序 API 的 .NET 包装器在 Microsoft.WindowsAppRuntime.Bootstrap.Net.dll 程序集中可用,该程序集是应用项目的本地版本。 有关 .NET 包装器的详细信息,请参阅 .NET 包装器库
  • 打包应用现在可以使用部署 API 获取计算机上安装的主 MSIX 包和单例 MSIX 包。 主包和单一实例包是随应用一起安装的框架包的一部分,但由于 Windows 应用程序模型的限制,打包的应用将需要执行此附加步骤才能安装这些包。 有关部署 API 工作原理的详细信息,请参阅 依赖于框架的打包应用的 Windows 应用 SDK 部署指南

重要限制

  • 引导程序 API 的 .NET 包装仅适用于未打包的 .NET 应用程序,以简化对 Windows 应用 SDK 的访问。
  • 只有完全信任或具有 packageManagement 受限功能的 MSIX 应用包才有权使用部署 API 来安装主包和单独包依赖项。 后续版本将支持部分信任打包应用程序。
  • 当 F5 在 x64 系统上测试使用 DeploymentManager.Initialize 方法的 x86 应用时,请确保先通过运行 WindowsAppRuntimeInstall.exe来安装 x64 框架。 否则,您将遇到 NOT_FOUND 错误,这是由于 Visual Studio 并未部署 x64 框架,该框架通常通过应用商店部署或旁加载进行。

应用生命周期

大多数应用生命周期功能已存在于 UWP 平台中,并且已引入 Windows 应用 SDK 供桌面应用类型使用,尤其是未打包的控制台应用、Win32 应用、Windows 窗体应用和 WPF 应用。 这些功能的 Windows 应用 SDK 实现不能用于 UWP 应用,因为 UWP 平台本身具有等效的功能。

非 UWP 应用也可以打包到 MSIX 包中。 虽然这些应用可以使用某些 Windows 应用 SDK 应用生命周期功能,但它们必须在适用的情况下使用清单方法。 例如,它们不能使用 Windows 应用 SDK RegisterForXXXActivation API,而是必须通过清单注册以获得丰富的激活功能。

打包应用的所有约束也适用于打包的 WinUI 3 应用;还有如下所述的其他注意事项。

重要注意事项

  • 丰富的激活:GetActivatedEventArgs

  • 注册/注销富激活功能

  • 单一/多实例化

    • 解压缩的应用:完全可用。
    • 打包的应用:完全可用。
    • WinUI 3 应用:如果应用想要检测其他实例并重定向激活,则必须尽早执行此作,并在初始化任何窗口之前等。若要启用此功能,应用必须定义DISABLE_XAML_GENERATED_MAIN,并编写自定义 Main(C#)或 WinMain(C++),以便在其中执行检测和重定向。
    • RedirectActivationToAsync 是异步调用,如果应用在 STA 中运行,则不应等待异步调用。 对于 Windows 窗体和 C# WinUI 3 应用,可以根据需要将 Main 声明为异步。 对于 C++ WinUI 3 和 C# WPF 应用,无法将 Main 声明为异步的,因此需要将重定向调用转移到另一个线程,以避免阻塞 STA。
    • 有关更多信息,请参阅应用生命周期 API 下的应用程序实例化
  • 电源/状态通知

已知问题:

设置动词处理程序的命令行模板时,文件类型关联错误地将 %1 编码为 %251,这会崩溃解压缩的 Win32 应用。 可以手动编辑注册表值,将其改为 %1 作为部分解决方法。 如果目标文件路径中有一个空格,则它仍然会失败,并且该方案没有解决方法。

其他限制和已知问题:

  • 版本 1.0 预览版 1 和预览版 2 包含一个关键 bug。 如果已安装其中一个预览版,请参阅 如何解决此问题。 建议改用版本 1.0 预览版 3

  • 此版本介绍适用于 C# 和C++项目的 空白应用、打包(WinUI 3 in Desktop) 模板。 通过这些模板,可以在 不使用单独的打包项目的情况下将应用构建到 MSIX 包中。 这些模板在此版本中存在一些已知问题:

    • Visual Studio 2019 的 C# 模板。 尝试生成项目时遇到错误:“项目不知道如何运行配置文件 项目名称”。 若要解决此问题,请安装 单项目 MSIX 打包工具扩展

    • Visual Studio 2019 和 Visual Studio 2022 的 C# 模板。 尝试在开发计算机上运行或调试项目时,将遇到以下错误:“需要部署项目,然后才能进行调试。 请在 Configuration Manager 中启用“部署”。若要解决此问题,请在 Configuration Manager 中为项目启用部署。 有关详细说明,请参阅 创建第一个 WinUI 3 (Windows 应用 SDK) 项目

    • 适用于 Visual Studio 2019 和 Visual Studio 2022 的C++模板。 在此版本中,这些项目仅限于调用 UWP 应用可以调用的 Win32 API 子集。 空白应用程序,打包在含有 WAP(WinUI 3 桌面版)的 模板中,不受此问题影响。

    • 适用于 Visual Studio 2022 版本 17.0 的 C++ 模板,支持到预览版 4。 首次尝试运行项目时遇到以下错误:“部署错误”。 若要解决此问题,请再次运行或部署项目。 此问题将在 Visual Studio 2022 版本 17.0 预览版 5 中修复。

  • 1.0 预览版 2 中错误地包含推送通知 API(Microsoft.Windows.PushNotifications 命名空间)。 这仍然是一项实验性功能,并且要使用此功能,必须改为安装 1.0 实验版。 此功能将从即将发布的 1.0 版本中删除。

  • 应用生命周期 API (Microsoft.Windows.AppLifecycle 命名空间)错误地包括 1.0 预览版 2 中的实验属性。 实验属性将在下一版本中从此 API 中删除。

  • 不支持任何 CPU 生成配置:将 Windows 应用 SDK 添加到 支持 任何 CPU 的现有 .NET 应用程序或组件时,必须指定所需的体系结构: x86x64arm64

  • 使用 1.0 预览版 2 的 C# 项目必须使用以下 .NET SDK:.NET 6 SDK 或更高版本(请参阅 下载 .NET.NET 5 将于 2022 年 5 月 10 日终止支持)。

  • DispatcherQueue.TryEnqueue(用于在调度程序队列线程上恢复执行)的替代方法是在 Windows 实现库(WIL)中使用resume_foreground帮助程序函数:

    1. 将您的项目引用添加到 Microsoft.Windows.ImplementationLibrary NuGet 包中。
    2. #include <wil/cppwinrt_helpers.h> 添加到 pch.h
    3. #include <winrt/Microsoft.UI.Dispatching.h> 添加到 pch.h
    4. 现在 co_await wil::resume_foreground(your_dispatcherqueue);

版本 1.0 预览版 1 (1.0.0-preview1)

重要

版本 1.0 预览版 1 和预览版 2 包含一个关键 bug。 如果已安装其中一个预览版,请参阅 如何解决此问题。 建议改用版本 1.0 预览版 3

这是 1.0 版本预览频道的首个版本。 它支持的所有 预览频道功能。

以下部分介绍此版本的新增功能和更新的功能、限制和已知问题。

WinUI 3 (1.0.0-preview1)

WinUI 3 的此版本专注于通过修复漏洞来为 1.0 做准备。

  • 新功能:预览版 1 中没有新功能。
  • 已修复问题:有关此版本中已解决的问题的完整列表,请参阅 我们的 GitHub 存储库

要了解详细信息或者开始使用 WinUI 3 进行开发,请参阅:

窗口化(1.0.0-preview1)

此版本将我们在实验 1 中引入的窗口化 API 引入预览状态。 此版本中没有主要新功能领域,因为它侧重于 API 签名的 bug 修复、稳定性和调整。 下面列出了值得注意的更改和新增内容。

新功能

  • DisplayAreaWatcher 已添加到窗口 API。 这样,开发人员就可以观察显示拓扑中的更改,并枚举系统中当前定义的 DisplayAreas。
  • AppWindow 现在支持通过 SetIcon 方法设置窗口图标, AppWindowTitleBar 现在支持选择是否通过 IconShowOptions 属性显示/隐藏窗口图标以及系统菜单。

重要限制

  • 此版本的 AppWindow 目前仅适用于 Win32 应用(打包和解压缩)。
  • Windows 应用 SDK 当前不提供将 UI 框架内容附加到 AppWindow 的方法;只能使用 HWND 互作访问方法。
  • 窗口标题栏自定义仅适用于 Windows 11。 使用 IsCustomizationSupported 方法以检查是否支持标题栏自定义功能。 我们打算将此功能降低级别。

有关详细信息,请参阅管理应用窗口(Windows 应用 SDK)。

输入 (1.0.0-preview1)

此版本为输入 API 带来了一些新功能。 下面列出了值得注意的更改和新增内容。

新功能和更新

  • PointerPredictor 使输入延迟敏感应用程序(例如墨迹书写应用程序)能够预测将来最多 15 毫秒的输入点位置,以实现更好的延迟和平滑动画。
  • PenDeviceInterop 使你能够通过使用 FromPointerPoint 方法,获取对 Windows.Devices.Input.PenDevice 的引用。
  • InputCursor 通过删除存在的 CoreCursor“自定义”类型并将对象拆分 CoreCursor 为单独的对象,在预设系统游标类型和自定义游标类型之间提供显式区别。
  • InputCursor API 的更新。
  • GestureRecognizer 已从实验性转移到 Microsoft.UI.Input。
  • PointerPoint 从实验状态中移出,移至 Microsoft.UI.Input。
  • 在 WinUI 3 拖放功能中,完全支持鼠标、触摸和笔输入。

重要限制

  • 此版本的输入 API 与 Windows 版本 1809 存在已知问题。
  • MRT Core 尚不支持 InputCursor的任何子类型。
  • 直接使用平台 SDK API Windows.UI.Core.CoreDragOperation 不适用于 WinUI 3 应用程序。
  • 已删除 PointerPoint 属性 RawPosition 和 ContactRectRaw,因为它们引用了非预测值,这些值与 OS 中的正常值相同。 改为 PositionContactRect。 指针预测现在使用 Microsoft.UI.Input.PointerPredictor API 对象进行处理。

MRT Core (1.0.0-preview1)

从版本 1.0 预览版 1 开始,MRT 核心 API 已从 Microsoft.ApplicationModel.Resources 命名空间移动到 Microsoft.Windows.ApplicationModel.Resources 命名空间。

其他限制和已知问题:

  • 版本 1.0 预览版 1 和预览版 2 包含一个关键 bug。 如果已安装其中一个预览版,请参阅 如何解决此问题。 建议改用版本 1.0 预览版 3

  • 使用C++ 空白应用程序创建的项目,使用具有 WAP(桌面版 WinUI 3)的 项目模板,默认会遇到以下构建错误:fatal error C1083: Cannot open include file: 'winrt/microsoft.ui.dispatching.co_await.h': No such file or directory。 若要解决此问题,请从 pch.h 文件中删除以下代码行。 此问题将在下一版本中修复。

    #include <winrt/microsoft.ui.dispatching.co_await.h>
    
  • DispatcherQueue.TryEnqueue(用于在调度程序队列线程上恢复执行)的替代方法是在 Windows 实现库(WIL)中使用resume_foreground帮助程序函数:

    1. 将您的项目引用添加到 Microsoft.Windows.ImplementationLibrary NuGet 包中。
    2. #include <wil/cppwinrt_helpers.h> 添加到 pch.h
    3. #include <winrt/Microsoft.UI.Dispatching.h> 添加到 pch.h
    4. 现在 co_await wil::resume_foreground(your_dispatcherqueue);
  • 不支持任何 CPU 生成配置:Windows 应用 SDK 是使用本机代码编写的,因此不支持 任何 CPU 生成配置。 Visual Studio 中的 WinUI 3 模板 仅允许构建特定于体系结构的版本。 将 Windows 应用 SDK 添加到支持任何 CPU 的现有 .NET 应用程序或组件时,必须指定所需的体系结构:x86x64arm64

  • .NET 应用程序必须以版本 18362 或更高版本为目标:您的 TFM 必须设置为 net6.0-windows10.0.18362 或更高版本,并且包项目的 <TargetPlatformVersion> 必须设置为 18362 或更高版本。 有关详细信息,请参阅 GitHub 上的已知问题

  • 使用 1.0 预览版 1 的 C# 项目必须使用以下 .NET SDK:.NET 6 SDK 或更高版本(请参阅 下载 .NET.NET 5 将于 2022 年 5 月 10 日终止支持)。

  • Windows 10 版本 1809 不支持解压缩的应用:应在下一版本中解决此问题。