从 UWP 迁移到 Windows App SDK

若要将应用从通用 Windows 平台(UWP)迁移到Windows 应用 SDK,UI 代码可能需要几个命名空间更改,而大部分平台代码可以保持不变。 由于 UWP 应用与桌面应用之间的差异,你将需要调整一些代码。 但是,我们预计,对于大多数应用而言(当然,这取决于代码库大小),迁移将按天数而不是周数的顺序进行。

注意

现有 UWP 应用将继续按预期方式正常运行。 但是,若要利用 WinUI 3 和 Windows 应用 SDK中的新式功能,建议迁移应用。

下面是手动迁移的步骤。 但有关使用 .NET 升级助手工具的信息,请参阅以下部分。

  1. 创建新的 WinUI 3 打包桌面项目(参阅创建你的第一个 WinUI 3 项目)。 这可能进入项目的现有解决方案。
  2. 复制 XAML/UI 代码。 在许多情况下,只需更改命名空间(例如,将 Windows.UI.* 更改为 Microsoft.UI.*)。
  3. 复制应用逻辑代码。 某些 API 需要调整,例如 PopupPickerSecondaryTile

有关更多详情,请参阅下表中的主题。 其介绍和演示如何将通用 Windows 平台 (UWP) 应用程序手动迁移到 Windows 应用 SDK。

请特别注意从 UWP 迁移到 WinUI 3 时支持的功能,其中描述了 WinUI 3 与 Windows App SDK 尚不支持的所有功能。 如果应用需要这些功能/库中的任何一个,则可能需要考虑推迟迁移。

注意

如果 UWP 应用的源代码是用 C++/CX 编写的,则另请参阅 从 C++/CX 移动到 C++/WinRT。

使用 .NET 升级助手工具进行迁移

作为你将 UWP 应用迁移到 Windows App SDK 和 WinUI 3 的进一步辅助,我们利用了 .NET 升级助手,添加了对迁移 C# UWP 应用的支持。 UWP 支持自动执行大部分迁移过程。 有关详细信息,请参阅主题使用 .NET 升级助手从 UWP 迁移到 Windows App SDK

容器化优势

转换到Windows 应用 SDK时,UWP 应用程序可能会失去其原始平台的固有容器化优势。 但是,可以使用 Win32 应用隔离来还原这些优势,这是一项新的安全功能,通过隔离沙盒环境中的应用程序来增强保护。 此方法为潜在威胁提供额外的安全性,只需对现有代码进行最小更改。 有关详细信息,并开始使用 Win32 应用隔离,请访问 GitHub 上的 Win32 应用隔离存储库

本部分中的主题

主题 说明
总体迁移策略 执行迁移过程的注意事项和策略,以及如何设置用于迁移的开发环境。
将 UWP 功能映射到 Windows App SDK 本主题比较主要功能区域在 UWP 和 Windows App SDK 中的不同显示形式。
支持的功能 了解 WinUI 3 桌面当前提供哪些功能,以评估是否应该立即尝试迁移 UWP 应用。
将 UWP API 和库映射到 Windows App SDK 本主题提供了 UWP API 和库与其 Windows App SDK 等效项的映射。
功能区域指南 迁移指南主题的集合,每个主题侧重于一个特定功能区域。
案例研究 1 - PhotoLab (C#) 本主题是获取 C# UWP PhotoLab 示例应用并将其迁移到 Windows App SDK 的案例研究。
案例研究 2 - 照片编辑器 (C++/WinRT) 本主题是获取 C++/WinRT UWP 照片编辑器示例应用并将其迁移到 Windows App SDK 的案例研究。
其他迁移指南 本主题包含未分类到功能区域指南中的功能区域的其他迁移指南。
使用 .NET 升级助手从 UWP 迁移到 Windows App SDK .NET 升级助手是一种命令行工具,可帮助将 C# UWP 应用迁移到使用 Windows App SDK 的 WinUI 3 应用。

另请参阅