Windows App SDK 1.0 的预览通道发行说明
重要
预览通道不支持在生产环境中使用,并且无法将使用预览版本的应用发布到 Microsoft Store。
此预览通道包括 Windows App SDK 的多个版本,其中附带处于开发后期阶段的预览通道功能。 预览版本不含实验功能和 API,但在下一稳定版本之前仍可能会出现重大更改。
重要链接:
- 如果要将现有应用从较旧版本的 Windows App SDK 升级到较新版本,请参阅将现有项目更新到 Windows App SDK 的最新版本。
- 有关预览版的文档,请参阅安装 Windows App SDK 的预览和试验通道工具。
最新预览通道版本:
最新稳定通道版本:
版本 1.0 预览版 3 (1.0.0-preview3)
预览版 3 是适用于 1.0 版 Windows App SDK 的通道最新预览版。 预览版 3 支持所有预览通道功能。
下载 1.0 预览版 3 Visual Studio 扩展 (VSIX)
注意
如果已安装 Windows App SDK Visual Studio (VSIX) 扩展,则在安装新版本之前卸载这些扩展。 有关说明,请参阅管理 Visual Studio 的扩展。
可以从下表中下载 1.0 预览版 3 版本的 Visual Studio 扩展 (VSIX)。 对于所有版本,请参阅最新 Windows App SDK 下载。 如果尚未这样做,请首先使用安装用于 Windows App SDK 的工具中的步骤来配置开发环境。
以下扩展适用于编程语言和 Visual Studio 版本。
1.0 预览版 3 下载 | 描述 |
---|---|
C# Visual Studio 2019 扩展 | 使用 Windows App SDK Visual Studio 2019 扩展生成 C# 应用。 |
C++ Visual Studio 2019 扩展 | 使用 Windows App SDK Visual Studio 2019 扩展生成 C++ 应用。 |
C# Visual Studio 2022 扩展 | 使用 Windows App SDK Visual Studio 2022 扩展生成 C# 应用。 |
C++ Visual Studio 2022 扩展 | 使用 Windows App SDK Visual Studio 2022 扩展生成 C++ 应用。 |
.exe 安装程序,和 MSIX 包 |
使用 .exe 安装程序和 MSIX 包将 Windows App SDK 部署到应用。 |
以下部分介绍 1.0 预览版 3 的新功能、更新功能、限制和已知问题。
WinUI 3 (1.0.0-preview3)
我们现在支持部署 WinUI 3 应用,而无需 MSIX 打包。 请参阅 创建第一个 WinUI 3(Windows App SDK)项目,配置 WinUI 3 应用程序以支持未打包的部署。
重要限制:
- 仅 Windows 版本 1909 及更高版本支持未打包的 WinUI 3 应用程序。
- x86 和 x64 支持未打包的 WinUI 3 应用程序;下一个稳定版本将添加 arm64 支持。
- 对于未打包的应用程序,Visual Studio 2019 或 Visual Studio 2022 的单项目 MSIX 打包工具是必需的。
- 在未打包的应用中,你可能会收到安装 .NET 3.5 的提示;如果已这样做,则可以将其忽略。
- 某些 API 目前在未打包的应用中不受支持。 我们将在下一个稳定版本中修复此问题。 一些示例:
- ApplicationData
- StorageFile.GetFileFromApplicationUriAsync
- ApiInformation(在 Windows 10 上不受支持)
- Package.Current
- ListView、CalendarView 和 GridView 控件使用的样式不正确,我们将在下一个稳定版本中修复此问题。
有关详细信息,或开始使用 WinUI 进行开发,请参阅:
其他限制和已知问题:
Windows 10 版本 1809 不支持未打包的应用。 我们将在稳定通道的下一版本中修复此问题。
如果未安装 C++ UWP 工具,C# 单项目 MSIX 应用不会编译。 如果有 C# 单项目 MSIX 项目,则需要安装 C++ (v14x) 通用 Windows 平台工具可选组件。
此版本引入了适用于 C# 和 C++ 的打包的空白应用(桌面版 WinUI 3)项目模板。 使用这些模板,无需使用单独的打包项目,即可将应用生成到 MSIX 包中(请参阅使用单项目 MSIX 打包应用)。 在此版本中,这些模板有一些已知问题:
在重新启动 Visual Studio 之前,缺少发布菜单项。 当使用“打包的空白应用(桌面版 WinUI 3)”项目模板在 Visual Studio 2019 和 Visual Studio 2022 中创建新应用时,关闭并重新打开 Visual Studio 之前,将不会在菜单中显示用于发布项目的命令。
使用单项目 MSIX 打包向 C++ 应用添加 C++ 静态/动态库项目引用时出错。 Visual Studio 显示错误消息,指出由于项目类型不兼容,无法将项目添加为引用。
引用类库项目中的自定义用户控件时出错。 如果系统找不到指定的路径,应用程序将崩溃并出现错误。
用于 Visual Studio 2019 的 C# 或 C++ 模板。 当尝试生成项目时,将遇到“项目不知道如何运行配置文件项目名称”的错误。 要解决此问题,请安装单项目 MSIX 打包工具扩展。
适用于 2019 Visual Studio 和 2022 Visual Studio 的 C# 模板。 在 Visual Studio 中,当“开始调试”或“启动而不调试”时,如果应用未部署并运行(并且没有来自 Visual Studio 的反馈),请单击“解决方案资源管理器”中的项目节点将其选中,然后重试。
适用于 2019 Visual Studio 和 2022 Visual Studio 的 C# 模板。 在开发计算机上尝试运行或调试项目时,会遇到以下错误:“需要先部署项目,然后才能进行调试。 请在配置管理器中启用部署。要解决此问题,请在“配置管理器”中为项目启用部署。 有关详细指示信息,请参阅创建第一个 WinUI 3(Windows App SDK)项目。
适用于 Visual Studio 2022 版本 17.0(版本最高可达预览版 4)的 C++ 模板。 首次尝试运行项目时,将遇到以下错误:“存在部署错误”。 要解决此问题,请再次运行或部署项目。 此问题将在 Visual Studio 2022 版本 17.0 预览版 7 中得到修复。
不支持任何 CPU 生成配置:添加 Windows App SDK 到支持任何 CPU 的现有 .NET 应用程序或组件时,必须指定所需的体系结构:
x86
、x64
或arm64
。使用 1.0 预览版 3 的 C# 项目必须使用以下 .NET SDK:.NET 6 SDK 或更高版本(请参阅下载 .NET 和 .NET 5 将于 2022 年 5 月 10 日终止支持)。
DispatcherQueue.TryEnqueue(用于在调度程序队列线程上恢复执行)的替代方法是,使用 Windows 实现库 (WIL) 中的 resume_foreground 辅助函数:
- 将对项目的引用添加到Microsoft.Windows.ImplementationLibrary NuGet 包。
- 将
#include <wil/cppwinrt_helpers.h>
添加到pch.h
。 - 将
#include <winrt/Microsoft.UI.Dispatching.h>
添加到pch.h
。 - 立即
co_await wil::resume_foreground(your_dispatcherqueue);
。
影响 1.0 预览版 1 和预览版 2 的重要问题
Windows App SDK 的 1.0 版预览版 1 和预览版 2 包含一种机制,可用于清理打包应用在卸载该应用时所做的任何环境变量更改。 此功能处于实验状态,第一个版本包含可能损坏系统“PATH”环境变量的已知 bug。
预览版 1 和预览版 2 损坏了包含扩展字符 %
的任何 PATH 环境变量。 每当卸载任何打包应用时,无论该应用是否使用 Windows App SDK,都会发生这种情况。
另请参阅PATH 环境变量损坏问题。
详细信息
系统“PATH”项存储在 Windows 注册表中以下项的“路径”值中:
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
如果启动注册表编辑器 (regedit.exe
),则可以将上面的路径复制并粘贴到痕迹导航栏(菜单栏正下方)中,然后按 Enter 键找到该项。
该键的“Path”值应该为“REG_EXPAND_SZ”类型,但 Bug 会将其更改为“REG_SZ”。 这会使系统“PATH”环境变量在包含变量扩展字符 %
时不可用。
受影响的版本
缓解措施
要使计算机恢复为良好状态,请执行以下步骤:
检查注册表中的“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 }
卸载使用 Windows App SDK 1.0 预览版 1 或 预览版 2 的所有应用(请参阅以下脚本)。
卸载 Windows App SDK 1.0 预览版 1/预览版 2 包,包括包含 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 App SDK 1.0 预览版 3 的问题
在即将推出的 Windows App SDK 1.0 预览版 3 中将删除导致“PATH”环境变量损坏的功能。 在修复并全面测试所有 bug 后,几天后可能会再进行更新。
建议使用版本 1.0 预览版 3。
版本 1.0 预览版 2 (1.0.0-preview2)
这是 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
,因为这些方法始终会成功。 - GetWindowIdFromWindow 和 GetWindowFromWindowId 不再需要 C# ImportDll 调用。 请改为使用 Microsoft.UI.Win32Interop 类中提供的 .NET 包装器方法。
重要限制:
- Windows App SDK 当前不提供将 UI 框架内容附加到 AppWindow 的方法,只能使用 HWND 互操作访问方法。
- 窗口标题栏自定义仅适用于 Windows 11。 使用 IsCustomizationSupported 方法检查标题栏自定义功能支持。 我们计划将此功能降级。
有关详细信息,请参阅管理应用窗口(Windows App SDK)。
输入 (1.0.0-preview2)
新更新:
- 改进了对精度触摸板输入的支持。
重要限制:
- 已删除所有 PointerPoint静态工厂函数:GetCurrentPoint、GetCurrentPointTransformed、GetIntermediatePoints 及 GetIntermediatePointsTransformed。
- Windows App SDK 不支持检索具有指针 ID 的“PointerPoint”对象。 相反,可以使用 PointerPoint 成员函数 GetTransformedPoint,检索现有 PointerPoint 对象的转换版本。 对于中间点,可以使用 PointerEventArgs 成员函数 GetIntermediatePoints 和 GetTransformedIntermediatePoints。 有关更多详细信息,请参阅文档。
MRT Core (1.0.0-preview2)
新更新:
- 应用开发人员现在可以选择不在 .NET 项目的 PRI 文件中为图像文件或 RESW 文件编制索引。 有关详细信息,请参阅问题 980。
重要限制:
- 在 .NET 项目中,如果已生成应用,则复制粘贴到项目文件夹中的资源文件不会在 F5 上编制索引。 解决方法是重新生成应用。 有关详细信息,请参阅问题 1503]。
- 在 .NET 项目中,如果不手动设置生成操作,则不会对从外部文件夹添加的现有资源文件编制索引。 要解决此问题,请在 Visual Studio 中设置生成操作:图像文件的“内容”和 RESW 文件的“PRIResource”。 有关详细信息,请参阅问题 1504。
适用于未打包应用的部署
新功能:
- Windows App SDK 1.0 预览版 2 引入了引导程序 API 的 .NET 包装器(请参阅将 Windows App SDK 运行时用于使用外部位置打包的应用或未打包的应用)。 引导程序 API 是一组本机 C/C++ 函数,解包应用必须使用这些函数在运行时动态获取 Windows App SDK 框架包的依赖项。 .NET 包装器提供了一种从 .NET 应用(包括 Windows 窗体和 WPF 应用)调用引导程序 API 的更简单方法。 引导程序 API 的 .NET 包装器在应用项目的本地程序集 Microsoft.WindowsAppRuntime.Bootstrap.Net.dll 中可用。 有关 .NET 包装器详细信息,请参阅 .NET 包装器库。
- 打包应用现在可以使用部署 API 获取计算机上安装的主和单独 MSIX 包。 主包和单独包是随应用一起安装的框架包的一部分,但由于 Windows 应用程序模型存在限制,打包应用需要执行此附加步骤才能安装这些包。 有关部署 API 工作原理的详细信息,请参阅依赖于框架的打包应用的 Windows App SDK 部署指南。
重要限制:
- 仅用于引导程序 API 的 .NET 包装器仅供未打包的 .NET 应用程序使用,以简化对 Windows App SDK 的访问。
- 只有完全信任或具有 packageManagement 受限功能的 MSIX 应用包才有权使用部署 API 来安装主包和单独包依赖项。 对部分信任打包音乐的支持将在后面的版本中推出。
- 当 F5 在 x64 系统上测试使用 DeploymentManager.Initialize 方法的 x86 应用时,请确保首先通过运行 WindowsAppRuntimeInstall.exe 安装 x64 框架。 否则,由于 Visual Studio 未部署 x64 框架(通常通过应用商店部署或旁加载发生),你将遇到 NOT_FOUND 错误。
应用生命周期
UWP 平台中已经存在大多数应用生命周期功能,并已将其引入 Windows App SDK 以供桌面应用类型使用,特别是未封装的主机应用、Win32 应用、Windows 窗体应用和 WPF 应用。 这些功能的 Windows App SDK 实现不能在 UWP 应用中使用,因为 UWP 平台本身中存在等效功能。
非 UWP 应用也可以打包到 MSIX 包中。 虽然这些应用可以使用某些 Windows App SDK 应用生命周期功能,但必须使用可用的清单方法。 例如,无法使用 Windows App SDK RegisterForXXXActivation API,而必须改为通过清单注册丰富激活。
打包应用的所有约束也适用于打包的 WinUI 3 应用,并存在如下所述的其他注意事项。
重要注意事项:
-
- 未打包应用:完全可用。
- 打包应用:可用,但这些应用也可以使用平台
GetActivatedEventArgs
。 请注意,平台定义了 Windows.ApplicationModel.AppInstance,而 Windows App SDK 定义了 Microsoft.Windows.AppLifecycle.AppInstance。 虽然 UWP 应用可以使用ActivatedEventArgs
类(如FileActivatedEventArgs
和LaunchActivatedEventArgs
),但使用 Windows App SDK AppLifecycle 功能的应用必须使用接口而不是类(例如IFileActivatedEventArgs
、ILaunchActivatedEventArgs
等)。 - WinUI 3 应用:为 WinUI 3 的 App.OnLaunched 提供 Microsoft.UI.Xaml.LaunchActivatedEventArgs,而平台
GetActivatedEventArgs
返回 Windows.ApplicationModel.IActivatedEventArgs,且 WindowsAppSDKGetActivatedEventArgs
返回 Microsoft.Windows.AppLifecycle.AppActivationArguments 对象,该对象可表示平台LaunchActivatedEventArgs
。 - 有关详细信息,请参阅将丰富激活与应用生命周期 API 配合使用。
注册/注销丰富激活
- 未打包应用:完全可用。
- 打包应用:不可用,请改用应用的 MSIX 清单。
- 有关详细信息,请参阅将丰富激活与应用生命周期 API 配合使用。
单/多实例化
- 未打包应用:完全可用。
- 打包应用:完全可用。
- 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。
电源/状态通知
- 未打包应用:完全可用。
- 打包应用:完全可用。
- 有关详细信息,请参阅将电源管理与应用生命周期 API 配合使用。
已知问题:
在设置 Verb 处理程序的命令行模板时,文件类型关联将 %1 错误地编码为 %251,这会导致未打包的 Win32 应用崩溃。 可以手动将注册表值编辑为 %1,作为部分解决方法。 如果目标文件路径中具有空格,则它仍将失败,并且没有针对该方案的解决方法。
其他限制和已知问题:
版本 1.0 预览版 1 和预览版 2 存在严重 bug。 如果已安装其中一个预览版,则请参阅如何解决此问题。 建议改为使用版本 1.0 预览版 3。
此版本引入了适用于 C# 和 C++ 项目的打包的空白应用(桌面版 WinUI 3)模板。 使用这些模板,无需使用单独的打包项目,即可将应用生成到 MSIX 包中。 在此版本中,这些模板有一些已知问题:
适用于 2019 Visual Studio 的 C# 模板。 当尝试生成项目时,将遇到“项目不知道如何运行配置文件项目名称”的错误。 要解决此问题,请安装单项目 MSIX 打包工具扩展。
适用于 2019 Visual Studio 和 2022 Visual Studio 的 C# 模板。 在开发计算机上尝试运行或调试项目时,会遇到以下错误:“需要先部署项目,然后才能进行调试。 请在配置管理器中启用部署。要解决此问题,请在“配置管理器”中为项目启用部署。 有关详细指示信息,请参阅创建第一个 WinUI 3(Windows App SDK)项目。
适用于 2019 Visual Studio 和 2022 Visual Studio 的 C++ 模板。 在此版本中,这些项目仅限于调用 UWP 应用可调用的 Win32 API 子集。 使用 WAP 打包的空白应用(桌面版 WinUI 3)模板不受此问题的影响。
适用于 Visual Studio 2022 版本 17.0(版本最高可达预览版 4)的 C++ 模板。 首次尝试运行项目时,将遇到以下错误:“存在部署错误”。 要解决此问题,请再次运行或部署项目。 此问题将在 Visual Studio 2022 版本 17.0 预览版 5 中得到修复。
推送通知 API(Microsoft.Windows.PushNotifications.命名空间)错误地包含在 1.0 预览版 2 版本中。 这仍是一项实验性功能,要使用,则必须改为安装 1.0 实验版。 此功能将从即将推出的 1.0 版本中删除。
应用生命周期 API (Microsoft.Windows.AppLifecycle 命名空间)错误地在 1.0 预览版 2 版本中包含实验属性。 下一版本将从此 API 中删除实验性属性。
不支持任何 CPU 生成配置:添加 Windows App SDK 到支持任何 CPU 的现有 .NET 应用程序或组件时,必须指定所需的体系结构:
x86
、x64
或arm64
。使用 1.0 预览版 2 的 C# 项目必须使用以下 .NET SDK:.NET 6 SDK 或更高版本(请参阅下载 .NET 和 .NET 5 将于 2022 年 5 月 10 日终止支持)。
DispatcherQueue.TryEnqueue(用于在调度程序队列线程上恢复执行)的替代方法是,使用 Windows 实现库 (WIL) 中的 resume_foreground 辅助函数:
- 将对项目的引用添加到Microsoft.Windows.ImplementationLibrary NuGet 包。
- 将
#include <wil/cppwinrt_helpers.h>
添加到pch.h
。 - 将
#include <winrt/Microsoft.UI.Dispatching.h>
添加到pch.h
。 - 立即
co_await wil::resume_foreground(your_dispatcherqueue);
。
版本 1.0 预览版 1 (1.0.0-preview1)
这是 1.0 版预览版通道的首个版本。 它支持所有预览通道功能。
以下部分介绍此版本的新功能、更新功能、限制和已知问题。
WinUI 3 (1.0.0-preview1)
此版本的 WinUI 3 侧重于生成 1.0,并修复了 bug。
- 新功能:预览版 1 中无新功能。
- 已修复问题:有关此版本中已解决问题的完整列表,请参阅 GitHub 存储库。
有关详细信息或开始使用 WinUI 3 进行开发,请参阅:
窗口化 (1.0.0-preview1)
此版本将实验版 1 中引入的窗口 API 引入预览状态。 此版本没有主要新功能领域,因为它侧重于 BUG 修复、稳定性和 API 签名调整。 下面列出了值得注意的更改和附加内容。
新功能:
- DisplayAreaWatcher 已添加到窗口 API。 开发人员可以观察显示拓扑中的更改,并枚举系统中当前定义的 DisplayAreas。
- AppWindow 现在支持通过 SetIcon 方法设置窗口图标,并且 AppWindowTitleBar 现在支持通过 IconShowOptions 属性选择是否显示/隐藏窗口图标以及系统菜单。
重要限制:
- 此版本的 AppWindow 目前仅适用于(打包和未打包的)Win32 应用。
- Windows App SDK 当前不提供将 UI 框架内容附加到 AppWindow 的方法,只能使用 HWND 互操作访问方法。
- 窗口标题栏自定义仅适用于 Windows 11。 使用 IsCustomizationSupported 方法检查标题栏自定义功能支持。 我们计划将此功能降级。
有关详细信息,请参阅管理应用窗口(Windows App SDK)。
输入 (1.0.0-preview1)
此版本为输入 API 带来了一些新功能。 下面列出了值得注意的更改和附加内容。
新功能和更新:
- PointerPredictor 使输入延迟敏感型应用程序(如墨迹书写应用程序)能够预测输入点位置(最多 15 毫秒),以实现更好的延迟和流畅的动画。
- 通过使用 FromPointerPoint 方法,PenDeviceInterop 使你能够获取对 Windows.Devices.Input.PenDevice 的引用。
- InputCursor 通过删除
CoreCursor
中的“自定义”类型,以及将CoreCursor
对象拆分为单独的对象,在预设的系统游标类型和自定义游标类型之间提供了显式区别。 - InputCursor API 的更新。
- GestureRecognizer 从实验版移动到 Microsoft.UI.Input。
- PointerPoint 从实验版移动到 Microsoft.UI.Input。
- WinUI 3 拖放完全支持鼠标、触控和笔输入。
重要限制:
- 此版本的输入 API 在 Windows 版本 1809 中存在已知问题。
- InputCursor 的任何子类尚不支持 MRT Core。
- 直接使用平台 SDK API Windows.UI.Core.CoreDragOperation 不适用于 WinUI 3 应用程序。
- 删除了 PointerPoint 属性的 RawPosition 和 ContactRectRaw,因为它们引用了非预测值,这与操作系统中的常规值相同。 请改为使用 Position 和 ContactRect。 指针预测现在通过 Microsoft.UI.Input.PointerPredictor API 对象进行处理。
MRT Core (1.0.0-preview1)
从版本 1.0 预览版 1 开始,MRT.LOG Core 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 辅助函数:
- 将对项目的引用添加到Microsoft.Windows.ImplementationLibrary NuGet 包。
- 将
#include <wil/cppwinrt_helpers.h>
添加到pch.h
。 - 将
#include <winrt/Microsoft.UI.Dispatching.h>
添加到pch.h
。 - 立即
co_await wil::resume_foreground(your_dispatcherqueue);
。
不支持任何 CPU 生成配置:Windows App SDK 是用本机代码编写的,因此不支持任何 CPU 生成配置。 Visual Studio 中的 WinUI 3 模板只允许特定于体系结构的生成。 添加 Windows App SDK 到支持任何 CPU 的现有 .NET 应用程序或组件时,必须指定所需的体系结构:
x86
、x64
或arm64
。.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 不支持未打包的应用:应在下一版本中解决此情况。