淘汰 .EXE 和 .MSI,Windows 新安装文件格式 MSIX

两年前微软公布了 Windows 新的安装格式 MSIX,试图让软件安装和卸载流程更轻便更安全。这个项目经过两年的发展,已经基本可以使用,接任 EXE 也只是时间问题。

01

MSI, EXE 和 AppX

目前 Windows 系统常用的安装格式有三种,MSI, EXE 和 AppX。

MSI 是 Windows 最基本的安装格式,它使用微软提供的标准安装卸载界面,本质上 MSI 就是一个数据库,其中包含,其仅包含该软件的所有必要数据。

安装过程不会检测该软件是否已经存在于计算机,或者是否缺少什么必备组件。不管怎么它会直接覆盖安装路径中的所有文件。这种简单粗暴的方式,非常适合无人值守的情况,驱动程序大多也是用 MSI 格式安装。

EXE 格式大家最熟悉,EXE 安装文件本质上就是一个可执行程序,所有 Windows 程序都是EXE格式。

因为是程序,所以能实现更多功能,比如检测已安装项,允许自定义安装路径,检测安装缺失的必备运行库,更「花里胡哨」的安装界面等等。因为EXE 格式功能更丰富,用户和开发者都喜欢用,反而比专门的安装格式 MSI 更常见。

AppX 是 Windows 8 后推出的新安装格式,大家可能没见过这种使用这种格式的程序,其实它就是 UWP 应用。

它继承了 MSI 的优点,就像手机软件的安装过程一样,几乎没有给用户任何选项,它允许直接覆盖升级,完全干净的卸载,Appx 程序运行在沙盒中,不能访问其他应用内存、文件。这个安装格式之所以没有火起来,主要原因还是对开发者太不友好,限制了软件权限,封包AppX 格式还必须重写。并且 Windows 8 之前的版本都不能使用这个格式,这种出力却没有好处的事情没人愿意做。

02

MSI + AppX = MSIX

正如大家知道的,EXE 程序功能强大,但也因此被恶意程序和流氓软件甚至病毒、木马利用,EXE 在带来便利的同时也给我们带来极大的安全隐患。

APPX 相对 EXE 安全性有了质的提升,但又因为严苛的限制条件又伤害了开发者的利益,而无法传播开。MSI 又过于简单,用户和开发者都不喜欢用。而 MSIX 结合了 MSI 和APPX 的优点诞生。

从用户的角度来看,MSIX 的安装过程类似 MSI 文件,但在其背后的工作原理又类似 AppX 文件。

MSIX安装器将支持所有的 Windows 文件格式,包括 Win32、WPF、WinForm 和 UWP。这样开发者只要遵循 MSIX 封装协议,将开发的应用程序封装为 .MSIX 格式后发布到Windows 10 应用商店,或其他网站,用户下载后就可以根据自己实际需要自行选择安装方式。

另外,现在的软件有一个很大的毛病是「杂乱」,经常卸载软件后还留下文件夹和注册表。

使用 MSIX 安装的程序都被放在类似「沙盒」的环境中,所有文件、注册表都按规则存放(例如 AppData 文件夹),卸载时所有数据都会被删除不会有残留。

并且,MSIX 格式可以给用户带来前所未有的安全感。因为能够使用的 MSIX 文件都必须要有受信任的根签名,并且上传到应用商店的软件都需要经过微软的审核。其中可能也有微软赚钱的「私心」,但确实为用户带来了不少好处。对于独立开发者或资金不足的工作室,大概还是会使用免费的 EXE 格式。

 

为了促进开发者使用新的格式,微软提供了非常简便的 MSIX 转换工具,开发人员可以直接将现有的 EXE、MSI 或 AppX 文件转换为MSIX 格式。

工具下载地址:https://docs.microsoft.com/zh-cn/windows/msix/

另外和 Appx 格式甚至可以在 Windows7,Linux 等平台上直接运行!

MSIX 虽然好处多多,并且已经可以使用,但正正要普及开很需要很漫长的时间,短期内(3-5年)还会以 EXE 为主。