在现有项目中使用 Windows 应用 SDK

如果桌面项目想要在其中使用 Windows 应用 SDK,则可以在项目中安装 Windows 应用 SDK NuGet 包, (最新版本,或任何需要) 的版本。 未打包的应用 (也就是说,不将 MSIX 用于其部署技术) 的应用如果要使用Windows 应用 SDK,则必须遵循此过程。 但打包的应用 也可以 做到这一点。

重要

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

注意

C# .NET 6 (及更高版本) 项目和 C++ 桌面项目支持此过程。 这些项目类型可以使用稳定发布通道、预览发布通道实验发布通道中的 NuGet 包。

先决条件

Instructions

  1. 在 Visual Studio 中打开现有项目。

    注意

    如果你有一个 C# 桌面项目,请确保项目文件中的 TargetFramework 元素设置为特定于Windows 10名字对象 (,例如 net6.0-windows10.0.19041.0) ,以便可以调用 Windows 运行时 API。 有关详细信息,请参阅在桌面应用中调用 Windows 运行时 API。 此外,必须面向 18362 或更高版本,因为存在一个已知问题,阻止面向 17763 的应用 (GitHub) 上使用 TFM 17763 时出现生成错误

  2. 请确保已启用 包引用

    1. 在 Visual Studio 中,单击“工具”>“NuGet 包管理器”>“包管理器设置”。
    2. 请确保已为“默认包管理格式”选择 PackageReference
  3. 在“解决方案资源管理器”中,右键单击项目并选择“管理 NuGet 包”。

  4. 在“NuGet 包管理器”窗口中,选中窗口顶部附近的“包含预发行版”复选框,选择“浏览”选项卡,然后搜索以下包之一:

    • 若要安装 1.0 或更高版本,请搜索 Microsoft.WindowsAppSDK 包。
    • 若要安装 0.8 版本,请搜索 Microsoft.ProjectReunion 包。
  5. 找到相应的 NuGet 包Windows 应用 SDK后,选择该包,然后在“NuGet 包管理器”窗口的右侧窗格中单击“安装”。

    正在安装的 Windows 应用 SDK NuGet 包的屏幕截图

    注意

    Windows 应用 SDK NuGet 包包含其他子包 (包括 Microsoft.WindowsAppSDK.FoundationMicrosoft.WindowsAppSDK.WinUI 和其他) ,这些子包包含Windows 应用 SDK中特定组件的实现。 不能单独安装这些子包,以便仅引用项目中的某些组件。 必须安装主 Windows 应用 SDK NuGet 包,其中包含所有组件。

  6. 仅适用于未打包的应用。 在未打包的应用可以使用Windows 应用 SDK API 和组件之前,应用必须先加载Windows 应用 SDK运行时以引用Windows 应用 SDK框架包。 有关详细信息,请参阅对使用外部位置打包或未打包的应用使用Windows 应用 SDK运行时教程:在使用外部位置打包的应用中使用引导程序 API 或使用Windows 应用 SDK的未打包应用。

  7. 你的应用现在可以使用你安装的发布通道中提供的Windows 应用 SDK API 和组件。 有关可用功能的列表,请参阅发布渠道

更多信息

如果现有项目是 C++ 项目,并且想要在Windows 应用 SDK中调用Windows 运行时 API,则需要添加对 C++/WinRT 的支持。 请参阅 Visual Studio 对 C++/WinRT、XAML、VSIX 扩展和 NuGet 包的支持。 查找有关 Microsoft.Windows.CppWinRT NuGet 包的信息。 如果没有该包,项目将无法在Windows 应用 SDK中找到Windows 运行时 API 的命名空间头文件。

如果在尝试使用 Windows 应用 SDK 组件时遇到类未注册错误,则可能必须向项目添加对 Windows 应用 SDK Framework 包的动态依赖项。 有关详细信息,请参阅 MSIX 框架包和动态依赖项