如果你有一个WPF、WinForms 或 Win32 桌面项目,你希望在其中使用Windows 应用 SDK的功能,则可以在项目中安装 Windows 应用 SDK NuGet 包。
先决条件
在应用中安装和使用 Windows 应用 SDK NuGet 包之前,请确保满足以下要求:
为Windows应用开发安装并配置Visual Studio。
WPF、WinForms 或 Win32 项目配置为调用 WinRT API。
说明
在 Visual Studio 中打开现有的 WPF、WinForms 或 Win32 项目。 确保它配置为 Call Windows 运行时 API。
在 Visual Studio 中,打开 NuGet 程序包管理器:
- 单击 Tools > NuGet 程序包管理器 > 管理解决方案的 NuGet 包...。
–或– - 在 解决方案资源管理器 中右键单击项目,然后选择 为解决方案管理 NuGet 包...。
- 单击 Tools > NuGet 程序包管理器 > 管理解决方案的 NuGet 包...。
在 NuGet 程序包管理器 窗口中,选择 Browse 选项卡并搜索以下包:
- Microsoft。WindowsAppSDK。
找到相应的Windows 应用 SDK NuGet 包后,选中NuGet 程序包管理器 窗口右侧的框,然后单击要安装包的项目旁边的框,然后单击Install。
注意
Windows 应用 SDK NuGet 包包含其他子包(包括 Microsoft.WindowsAppSDK.Foundation、Microsoft.WindowsAppSDK.WinUI 等),这些子包包含Windows 应用 SDK中特定组件的实现。 一般情况下,我们建议安装主Windows 应用 SDK NuGet 包,其中包括所有组件。 在某些情况下,可以单独安装子包,以便仅引用项目中的某些组件。 例如,请参阅 Install 并部署 Windows ML。
解压缩应用的其他步骤
如果应用已解压缩(默认使用哪些桌面应用),则使用Windows 应用 SDK需要执行一些其他步骤。
有关 打包 和 解压缩的术语的详细信息,请参阅 打包概述。
1. 安装 Windows 应用 SDK 运行时
要在应用运行的任何计算机上安装 Windows 应用 SDK 运行时。
对于开发环境,建议访问 Latest Windows 应用 SDK 下载页面,然后下载、解压缩并运行以下任一项的安装程序:
- 运行时下载下的最新稳定版本。
- 与您已安装的Microsoft.WindowsAppSDK NuGet 包的版本和发布通道匹配的运行时的版本和发布通道。
为计算机的体系结构选择适当的安装程序选项。
重要
部署应用后,你将负责将所需的Windows 应用 SDK运行时包部署到最终用户。 有关详细信息,请参阅 Windows 应用 SDK 部署指南,适用于与外部位置打包或未打包的框架依赖应用程序。
2.初始化Windows 应用 SDK运行时
默认情况下,已解压缩 WPF、WinForms 或 Win32 桌面应用。 未打包的应用在使用 Windows 应用 SDK 的任何其他功能之前,必须先初始化 Windows 应用 SDK 运行时功能。
当应用通过自动初始化启动时,可以自动执行此操作。
在“解决方案资源管理器”中,右击项目,然后选择“编辑项目文件”。
在
PropertyGroup元素内部,添加一个WindowsPackageType元素,并设置为None。
<WindowsPackageType>None</WindowsPackageType>
生成项目时,这些文件将会在 Visual Studio 中添加到您的项目中。
- MddBootstrapAutoInitializer.cs
- WindowsAppSDK-VersionInfo.cs
手动编辑 .cxproj 文件。
在
<PropertyGroup Label="Globals">元素中,添加一个设为None的WindowsPackageType元素。
<WindowsPackageType>None</WindowsPackageType>
注意
如果您有高级需求(例如自定义错误处理或加载特定版本的 Windows 应用 SDK),则可以显式调用引导程序 API,而不是使用自动初始化。有关详细信息,请参阅使用 Windows 应用 SDK 运行时用于打包到外部位置或未打包的应用和教程:在使用 Windows 应用 SDK 的打包到外部位置或未打包的应用中使用引导程序 API。
更多信息
如果在尝试使用Windows 应用 SDK组件时遇到类未注册错误,则可能需要将Windows 应用 SDK Framework 包的动态依赖项添加到项目中。 有关详细信息,请参阅 MSIX 框架包和动态依赖项。