将桌面应用程序转换为通用 Windows 平台应用程序 - Project Centennial






4.93/5 (20投票s)
如何将我们现有的经典 Windows/WPF/Win32 桌面应用程序转换为 UWA?Project Centennial。
引言
您是否正在寻找一种方法将现有的 Win32/WPF/经典桌面应用程序转换为通用 Windows 平台?不想更改任何代码?那么请阅读本文,它将帮助您使用 **Project Centennial** 将桌面应用程序转换为 UWA(通用 Windows 应用程序)。
通用 Windows 平台应用程序的需求
在经典 Windows 桌面/WPF/Win32 应用程序中,您是否面临以下问题?
- 安装错误(安装不完整、访问问题、注册表失败、框架问题)
- DLL 冲突问题(当同一 DLL 被多个程序引用,但由于应用程序未保留版本信息而导致 DLL 被替换时发生)
- 卸载问题(未完全卸载,应用程序已卸载但注册表项未被删除)
- 应用程序占用过高的系统资源(处理器、内存导致机器死机)
- 无法实现一键安装
- 性能问题
- 希望在 Windows 10 上运行应用程序
要解决这些问题,我们应该转向 UWA(通用 Windows 应用程序)。互联网上有很多链接解释如何构建通用 Windows 应用程序,但没有一个解释如何将我们现有的经典 Windows/WPF/Win32 桌面应用程序转换为 UWA。答案是 **Project Centennial**。
什么是 Project Centennial?
简单来说,它只不过是一个有用的桌面应用程序转换器,可以帮助开发人员将其桌面应用程序/Win32/WPF 经典应用程序转换为 UWA。您只需要提供安装程序文件 (MSI) 或 .EXE 文件作为输入,它就会处理该文件,为您提供一个易于在 Windows 10 上安装的 *.AppX* 或 *.AppXbundle* 文件,然后您可以将该文件部署到 Windows 应用商店。
Project Centennial 还为转换后的 AppX/AppXbundle 文件提供了一个包标识(包标识在部署到 Windows 应用商店时非常有用)。
根据微软的说法
"Desktop App Converter 是一个预发行版工具,它使开发人员能够将其为 .NET 4.6.1 或 Win32 编写的现有桌面应用程序带入通用 Windows 平台。开发人员可以通过非交互式(静默)模式运行其桌面安装程序通过转换器,并获得一个 AppX 包,该包可以通过 Add-AppXPackage PowerShell cmdlet 在其开发机器上安装。"
功能列表
- 由 Project Centennial 创建的应用程序可以充分利用 Windows 10 的优势。应用程序可以使用旁加载功能顺利安装 在此处阅读:Windows 10 的旁加载功能
- 由于您的应用程序具有包标识,您可以轻松地在现有代码中调用 UWA(通用 Windows 应用程序)API。
- 用户将体验到类似 Windows 应用商店的安装过程,因为可以实现一键安装。
- 安装和卸载变得清晰明了,因为所有必需的文件和注册表项都存储在单个位置(在 Windows 桌面应用程序中,即使您卸载了应用程序,仍可能留下一些临时文件和注册表项)。
- 整体系统速度不会受到影响,因为注册表项不会跨越所有注册表,并且安装文件将位于单个位置(在经典/Win32 桌面应用程序中,注册表项和安装文件会跨越系统并在每次系统启动时加载,因此会影响系统性能),并且 Windows 10 会以不同于经典应用程序的方式处理 UWA,从而实现资源和性能的改进。
- 转换后,您的输出包将获得 Windows 应用的强大功能,例如带有 XAML 的出色用户界面、实时磁贴和更新、服务、后台工作等。
- Windows 应用商店的许可和更新便利性将“默认”应用于您转换后的应用程序
- 一旦转换为 AppX,我们就可以在不同的 Windows 平台(如桌面、移动设备、Xbox、Surface、全息设备、物联网等)上运行它。
先决条件
运行 Project Centennial 至少需要 Windows 10。硬件可能需要 x64 处理器和大量的内存。
如何使用 Project Centennial
首先,您需要下载 *DesktopAppConverter.zip* 和基线镜像 *.wim* 文件,这两个文件都可以从这里下载。
将“*DesktopAppConverter.zip*”文件解压到本地系统。
使用具有管理员权限的 PowerShell 窗口在您的机器上安装转换器,请参阅以下命令安装桌面转换器
PS C:\> .\DesktopAppConverter.ps1 -Setup -BaseImage .\BaseImage-1XXXX.wim -Verbose
成功运行上述命令后需要重启。
重启后,您几乎就可以使用应用程序转换器了。可以使用 PowerShell 或命令提示符来运行此工具,您需要提供不同的参数来运行它,例如 `Installer`、`Destination`、`PackageName`、`Publisher` 和 `Version` 到 AppX 文件(这是转换器程序的输出)。
语法如下
DesktopAppConverter.ps1
-Installer <String> [-InstallerArguments <String>] [-InstallerValidExitCodes <Int32>]
-Destination <String>
-PackageName <String>
-Publisher <String>
-Version <Version>
参考
有关更多详细信息和用法,您可以访问以下链接:Windows 开发中心:Project Centennial
关注点
这真是一个了不起的转换器,它可以在不更改任何代码的情况下将您经典的 Windows/Win32 EXE 直接转换为 AppX,此外,我们还将获得所有类似 Windows 应用商店的优势作为奖励。现在,让我们看看未来开发人员将如何抓住这个机会,将他们的 EXE/MSI 转换为 AppX。
希望这对您将现有的 Win32/Windows 经典/WPF 应用程序转换为新的 AppX 世界有所帮助!
祝您转换愉快!
-Prasad