前面一篇我们介绍了 Adaptive Cards 的基础知识,而在 Windows Developer Day 的 Modern Application Experience 环节,还有一个需要划重点的知识点:MSIX & Advanced Installer。
下面是 WDD 的展示部分:
MSIX
如 WDD 上 Kevin Gallo 所述,MSIX 要实现的是一个完备的容器化解决方案,它继承了 UWP 几乎所有的重要特性和优点,可以应用到所有 Win32,WPF,Windows Forms 和 UWP 应用里。
重要的是 MSIX 打包格式 MSIX Packaging SDK 已经在 GitHub 开源了:GitHub Microsoft/msix-packaging
Microsoft 官方的 MSIX Packaging SDK 描述:
可以看出,它是一个跨平台 SDK,可以让多平台的开发者使用去打包和解包,为了分发到 Microsoft Store 或 开发者自己的内容分发网络。
项目中包含了可以解包 .msix .appx 文件的跨平台 API 支持:
关于这个 SDK 的依赖项,安装环境要求和每个平台 make 命令对应的文件,大家可以在 GitHub 详细查看。从描述信息看,项目支持在 Windows,Mac,Linux 上编译,另外还支持在 Windows 上为 Android 平台编译。
Advanced Installer
概述
官方地址:Advanced Installer Express Edition
Advanced Installer 是一个由社区力量开发的工具,在 WDD 上发布了 Advanced Installer Express 版本。它是一个免费工具,可以让你手头的传统桌面应用变得现代化,创建成 .appx 文件包,也就是上面说的 Modern Application Experience. 创建后的 .appx 文件可以发布到应用商店,就像 UWP 能做的一样。
Advanced Installer 具有以下几个特点:
- 转换简易--它可以监控操作系统中的 MSI/EXE 安装程序,方便的使用 Advanced Installer 转换为 APPX 和 MSI/EXE 包;
- 集成虚拟机--它可以自动启动一个虚拟机镜像,执行后把结果返回到正在使用的宿主机;
- 专用 UI--学习成本低,可以完全的控制 APPX 的生成选项,操作体验很像 Visual Studio 的 Manifest 编辑器;
- 集成 VS--VS 的解决方案可以直接方便的使用集成在 VS 中的 Advanced Installer 生成 APPX 包;
- Desktop Bridge 的补充--它覆盖了 Desktop Bridge 所有缺失的特性;
其中集成 VS 非常有意义,对于开发过程中 CI(continuous integration)的支持提供了重要前提。另外,Advanced Installer 对于 TFS、Jenkins、TeamCity 都集成了插件的支持。如果大家有兴趣,可以在官方的 CI 页面下载对应插件使用:Installer Continuous Integration
另外,对于 Desktop Bridge 的补充,对于使用过 Desktop Bridge 的开发者们很重要,引用官方说明如下:
实际操作
在官方下载打开后,可以看到首页的操作选项:
- Desktop Bridge Project -- 可以新建一个项目,把桌面应用转换为 APPX 应用,配置 UWP 应用的各种特性;
- UWP Appx -- 可以导入一个 APPX 包,重新对它进行各个配置项的调整;
- Convert Desktop App -- 可以监控系统中的桌面应用,进行 APPX 的转换;
我用一个简单的 Windows Form EXE 来进行测试,看一下转换的引导部分:
到这里我们新建的项目中的 Windows Form EXE 就成功 Build 为 APPX 包了,接下来是 Advanced Installer 的主要编辑部分,我们可以对以下部分进行编辑:
- Product Information -- 产品通用信息,包括产品名、版本号、数字签名、升级策略等
- Universal Windows -- UWP 应用特性,如各尺寸磁贴、启动屏幕、应用权限等,和 Visual Studio 的 Manifest 很相似
- Resources -- 需要附加的资源,还包括注册表操作、文件打开关联、附加的程序集等
- Package Definition -- 安装包定义,包括默认的安装位置、安装权限等
- Requirements -- 安装包对系统配置的要求
- User Interface -- 安装过程中各个窗体的配置
- Syetem Changes -- 设置环境变量,注册 COM 组件
需要注意的点:
Run in VM 操作,对于 Windows OS 的版本要求是:Enterprise 版本。因为我目前还是专业版,所以暂不体验这个功能。
重点看一下应用程序的数字签名部分:
为了让转换后的 APPX 可以直接在系统安装,需要设置数字签名,这里我使用了一个已有的 UWP 应用的 PFX 数字签名文件。如果大家有认证过的数字签名证书,也可以拿来用。
来看一下我转换成功后的程序目录:
- BuildUwpAppXSetupFiles -- 这个目录存放的是 APPX 文件
- Setup Files -- 这个目录存放的是 MSI 安装包,如前面所说,Advanced Installer 会同时生成 APPX 和 MSI 安装包
- APPXDemo.aip -- Advanced Installer 的项目文件,可以打开继续编辑
接下来看看 UWP APPX 的安装:
安装成功,正常启动后:
MSIX 和 Advanced Installer 的使用介绍就到这里,因为没有 Enterprise 操作系统,所以没有测试 VM 功能,大家如果对 Advanced Installer 感兴趣,可以进行更深入的研究。