65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.93/5 (20投票s)

2016年6月14日

CPOL

4分钟阅读

viewsIcon

32383

如何将我们现有的经典 Windows/WPF/Win32 桌面应用程序转换为 UWA?Project Centennial。

引言

您是否正在寻找一种方法将现有的 Win32/WPF/经典桌面应用程序转换为通用 Windows 平台?不想更改任何代码?那么请阅读本文,它将帮助您使用 **Project Centennial** 将桌面应用程序转换为 UWA(通用 Windows 应用程序)。

通用 Windows 平台应用程序的需求

                                                                        

在经典 Windows 桌面/WPF/Win32 应用程序中,您是否面临以下问题?

  1. 安装错误(安装不完整、访问问题、注册表失败、框架问题)
  2. DLL 冲突问题(当同一 DLL 被多个程序引用,但由于应用程序未保留版本信息而导致 DLL 被替换时发生)
  3. 卸载问题(未完全卸载,应用程序已卸载但注册表项未被删除)
  4. 应用程序占用过高的系统资源(处理器、内存导致机器死机)
  5. 无法实现一键安装
  6. 性能问题
  7. 希望在 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 在其开发机器上安装。" 

功能列表

  1. 由 Project Centennial 创建的应用程序可以充分利用 Windows 10 的优势。应用程序可以使用旁加载功能顺利安装 在此处阅读:Windows 10 的旁加载功能
  2. 由于您的应用程序具有包标识,您可以轻松地在现有代码中调用 UWA(通用 Windows 应用程序)API。
  3. 用户将体验到类似 Windows 应用商店的安装过程,因为可以实现一键安装。
  4. 安装和卸载变得清晰明了,因为所有必需的文件和注册表项都存储在单个位置(在 Windows 桌面应用程序中,即使您卸载了应用程序,仍可能留下一些临时文件和注册表项)。
  5. 整体系统速度不会受到影响,因为注册表项不会跨越所有注册表,并且安装文件将位于单个位置(在经典/Win32 桌面应用程序中,注册表项和安装文件会跨越系统并在每次系统启动时加载,因此会影响系统性能),并且 Windows 10 会以不同于经典应用程序的方式处理 UWA,从而实现资源和性能的改进。
  6. 转换后,您的输出包将获得 Windows 应用的强大功能,例如带有 XAML 的出色用户界面、实时磁贴和更新、服务、后台工作等。
  7. Windows 应用商店的许可和更新便利性将“默认”应用于您转换后的应用程序
  8. 一旦转换为 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

 

© . All rights reserved.