将桌面应用转换为UWA:Project Centennial指南

Windows 10推出后,微软引入了UWA(Universal Windows Apps),这是一种全新的应用类型,旨在为所有Windows 10设备提供一致的应用体验。如果是一个开发者,可能会遇到一些传统Windows桌面应用(如WPF或Win32应用)在现代操作系统上的问题,比如安装错误、卸载不彻底、资源占用过高等。为了解决这些问题,可能会考虑将应用迁移到UWA。幸运的是,微软提供了一个名为Project Centennial的工具,可以帮助轻松地将现有的桌面应用转换为UWA,而无需更改任何代码。

为什么要转换到UWA

传统的Windows桌面应用可能会遇到以下问题:

  • 安装错误(包括不完整的安装、访问权限问题、注册表失败、框架问题)
  • DLL地狱问题(多个程序引用相同的DLL,但因版本信息不一致导致DLL被替换)
  • 卸载问题(应用卸载后,注册表键未被移除)
  • 应用占用过多系统资源(如CPU、RAM,导致机器卡顿)
  • 无法实现一键安装
  • 性能问题
  • 希望在Windows 10上运行应用

为了克服这些问题,转向UWA是一个明智的选择。虽然互联网上有许多资源解释如何构建UWA,但很少有资源详细说明如何将现有的传统Windows/WPF/Win32桌面应用转换为UWA。Project Centennial正是解决这一问题的答案。

什么是Project Centennial

简而言之,Project Centennial是一个有用的桌面应用转换器,它可以帮助开发者将他们的桌面应用/Win32/WPF传统应用转换为UWA。只需要提供安装程序文件(MSI)或.EXE文件作为输入,它就会处理这些文件,并为生成一个可以轻松安装在Windows 10上的.AppX或.AppXbundle文件,并且可以将这个文件部署到Windows商店。

Project Centennial的特点

通过Project Centennial创建的应用可以充分利用Windows 10的优势。应用可以平滑地使用边载(sideloading)功能进行安装。

应用将拥有包身份,这使得可以在现有代码中轻松调用UWA(Universal Windows Apps)API。

用户将体验到类似Windows商店的安装过程,因为可以实现一键安装。

安装和卸载过程将变得更加智能,因为所有必需的文件和注册表项都存储在单一位置。

系统速度不会受到影响,因为注册表项不会遍布整个注册表,安装文件将位于单一位置。

转换后,输出包将拥有Windows应用的特性,如优秀的用户界面、动态磁贴、更新、服务、后台工作等。

Windows商店的许可和更新功能将默认适用于转换的应用。

一旦转换为AppX,可以在不同的Windows平台上运行它,如桌面、移动设备、Xbox、Surface、全息设备、IoT等。

使用Project Centennial的前提条件

要运行Project Centennial,系统至少需要安装Windows 10。硬件方面,建议使用x64处理器,并配备足够的内存。

如何使用Project Centennial

首先,需要下载DesktopAppConverter.zip文件和基础映像.wim文件,这两个文件都可以从微软的官方网站下载。

在本地系统上解压缩DesktopAppConverter.zip文件。

使用具有管理员权限的PowerShell窗口来安装转换器,如下所示:

PowerShell PS C:\> .\DesktopAppConverter.ps1 -Setup -BaseImage .\BaseImage-1XXXX.wim -Verbose

成功运行上述命令后,系统将重新启动。

重新启动后,几乎可以使用应用转换器了。可以使用PowerShell或命令提示符来运行这个工具,需要提供不同的参数,如安装程序、目标、包名称、发布者和版本,以生成AppX文件(这是转换器程序的输出)。

语法如下:

DesktopAppConverter.ps1 -Installer [ -InstallerArguments ] [ -InstallerValidExitCodes ] -Destination -PackageName -Publisher -Version

有关更多详细信息和用法,可以访问以下链接:

Project Centennial是一个非常出色的转换器,它可以将传统的Windows/Win32 EXE直接转换为AppX,而且不需要更改任何代码。此外,还将获得所有类似于Windows商店应用的额外好处。现在让看看未来开发者将如何利用这个机会,将他们的EXE/MSI转换为AppX。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485