在现有项目中使用 Windows App SDK

如果你有一个桌面项目,你希望在其中使用Windows 应用 SDK,则可以在项目中安装 Windows 应用 SDK NuGet 包(最新版本或所需的任何版本)。 解压缩的应用(也就是说,不使用 MSIX 进行部署技术的应用)必须遵循此过程(如果要使用Windows 应用 SDK。 但打包的应用 也可以 执行此操作。

重要

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

注意

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

先决条件

  • Visual Studio 2019 或更高版本。
  • 用于 Windows 应用开发的工作负载和组件。 有关详细信息,请参阅Windows 应用 SDK的安装工具。

说明

  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. 找到相应的Windows 应用 SDK NuGet 包后,选择该包,然后在 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 框架包和动态依赖项

另请参阅