若要将应用从 通用 Windows 平台(UWP)迁移到 Windows 应用 SDK,UI 代码可能需要几个命名空间更改,而大部分平台代码可以保持不变。 由于 UWP 应用与桌面应用之间的差异,你将需要调整一些代码。 但是,我们预计,对于大多数应用而言(当然,这取决于代码库大小),迁移将按天数而不是周数的顺序进行。
注意
现有 UWP 应用将继续按预期方式正常运行。 但是,若要利用 WinUI 3 和 Windows 应用 SDK 中的新式功能,我们建议迁移您的应用程序。
下面是手动迁移的高层次步骤。 但有关使用 .NET 升级助手工具的信息,请参阅以下部分。
- 创建新的 WinUI 打包桌面项目(请参阅 创建第一个 WinUI 项目)。 这可能适用于你项目中的现有解决方案。
- 复制 XAML/UI 代码。 在许多情况下,只需更改命名空间(例如,Windows。UI.* 到 Microsoft。UI.*)。
- 复制应用逻辑代码。 某些 API 需要调整,例如 Popup、Picker 和 SecondaryTile。
有关更多详情,请参阅下表中的主题。 它们介绍如何手动将通用 Windows 平台 (UWP)应用程序迁移到Windows 应用 SDK。
请特别注意从 UWP 迁移到 WinUI 时支持的功能,其中描述了 WinUI 和Windows 应用 SDK尚不支持的任何功能。 如果应用需要这些功能/库中的任何一个,则可能需要考虑推迟迁移。
注意
如果 UWP 应用的源代码是用 C++/CX 编写的,则另请参阅 从 C++/CX 移动到 C++/WinRT。
使用.NET升级助手工具进行迁移
作为帮助你将 UWP 应用迁移到 Windows 应用 SDK 和 WinUI 的进一步,我们利用了.NET升级助手,添加了对迁移 C# UWP 应用的支持。 UWP 支持自动执行大部分迁移过程。 有关详细信息,请参阅主题 使用 .NET 升级助手从 UWP 到 Windows 应用 SDK。
容器化优势
过渡到Windows 应用 SDK时,UWP 应用程序可能会失去其原始平台的固有容器化优势。 但是,可以使用 Win32 应用隔离来还原这些优势,这是一项新的安全功能,通过隔离沙盒环境中的应用程序来增强保护。 此方法为潜在威胁提供额外的安全性,只需对现有代码进行最小更改。 有关详细信息,以及开始使用 Win32 应用隔离,请参阅 Win32 应用隔离概述。
本部分中的主题
| 主题 | 说明 |
|---|---|
| 总体迁移策略 | 执行迁移过程的注意事项和策略,以及如何设置用于迁移的开发环境。 |
| 将 UWP 功能映射到 Windows 应用 SDK | 本主题比较了 UWP 和Windows 应用 SDK中显示的不同形式的主要功能区域。 |
| 支持的功能 | 了解 WinUI Desktop 中当前可用的功能,以评估是否应立即尝试迁移 UWP 应用。 |
| 将 UWP API 和库映射到 Windows 应用 SDK | 本主题提供了 UWP API 和库与其 Windows 应用 SDK 等效项之间的映射。 |
| 特性区域指南 | 迁移指南主题的集合,每个主题侧重于一个特定功能区域。 |
| 案例研究 1 - PhotoLab (C#) | 本主题是采用 C# UWP PhotoLab 示例应用并将其迁移到Windows 应用 SDK的案例研究。 |
| 案例研究 2 - 照片编辑器 (C++/WinRT) | 本主题是采用 C++/WinRT UWP 照片编辑器示例应用并将其迁移到Windows 应用 SDK的案例研究。 |
| 其他迁移指南 | 本主题包含功能区域指南中未分类的其他迁移指南。 |
| 使用 .NET 升级助手将 UWP 迁移到 Windows 应用 SDK | .NET升级助手是一种命令行工具,可帮助将 C# UWP 应用迁移到使用 Windows 应用 SDK 的 WinUI 应用。 |
| 使用 AI 帮助实现应用现代化 | 如何使用GitHub Copilot加速现有桌面应用通过Windows 应用 SDK和WinUI 3进行现代化。 |