什么是MSIX?MSIX文件是一种全新的安装包格式,可视为现有MSI的升级版,支持所有程序格式。2018年3月8日,在Windows开发日峰会上,微软宣布Windows 10将引入“MSIX”。
不管是新技术还是新瓶装旧酒,我们来看看。
追根溯源,了解MSIX的前世。
众所周知,自从Windows 8被引入Windows Store之后,Windows系统中的软件就被分成了两类。一类是传统的。exe文件系统称为“程序文件”。
一般安装在C:Program Files下;另一类叫做“应用”,大多安装在C: Program File Windows Apps下(图1)。
图1 Windows 10应用程序的安装位置
对于传统的标准EXE程序,默认使用MSI包格式,MSI是Microsoft Installer的简称,是微软格式的安装包,Windows 10应用程序打包为APPX格式。
这样,开发者在为Windows 10系统开发应用时,往往需要两种独立的应用打包格式。为了简化开发者的打包工作,微软推出了一种全新的安装包格式,MSIX(=MSI APPX),这就是MSIX的起源(图2)。
图2 MSIX格式
MSIX特色:
集合了App应用和MSI文件封装格式的功能。新的MSIX安装程序将支持所有的Windows文件格式,包括Win32,WPF,WinForm和UWP。开发者只需要一个包就可以安装容器。
不考虑不同格式,也方便通过企业网或微软商店集中部署。
MISX文件格式集成了Windows文件格式的最佳安装技术,继承了UWP的特点,自定义,更安全,支持所有Windows应用。
在组合格式的背后,MSIX封装了解析。
如上所述,MSIX=微星APPX,微软推出这种格式是为了简化开发者的打包工作。那么MSIX是如何实现这一功能的呢?
首先,我们来了解一下MSI的包格式。MSI文件是Windows Installer的一个数据包,本质上其实是一个数据库。
它包含程序所需的信息,以及在许多安装情况下安装(和卸载)程序所需的说明和数据。它把简单的程序文件和函数封装在一起,包含了安装过程的信息,比如安装路径、系统运行时文件、安装选项等等。
这样我们就可以在安装以标准MSI格式封装的程序时记录下各种详细的信息,在卸载时可以根据这些信息完全卸载程序。即使在安装过程中出现错误,我们也可以使用这些信息来恢复到安全前的状态。
所以很多大公司开发的软件都是以MSI格式打包的(图3)。
图3 MSI格式
APPX是继Windows 8之后的一种新的应用格式,本质上是一个随时可以分发和安装的应用包。将安装包上传到Windows应用商店后,商店将在销售之前运行安全性和合规性测试。
确保用户从app store下载安全的应用程序。但是,由于目前的CPU架构分为ARM、x86、x64,所以Appx主要包括。appx(非通用安装包,
ARM、x86和x64设备上需要不同的安装包)。APPXbundle(同一个应用的appx打包,
不同平台所需的打包APPX)。appxsym(UWP符号文件),以及。appxupload(供开发人员将应用程序上传到商店的文件)(图4)。
图4 .appxbundle文件
Windows 10应用商店是微软目前正在全力推广的一种应用安装方式。为了实现全平台(ARM、x86、x64)兼容性,
微软在MWC 2015上首次推出了Win10 Universal App,它构建了一套通用的现代跨语言API,可以在各种Windows平台上使用。
加上一个好的文档和应用程序存储系统。一个开发者的代码几乎完全不变,生成安装包时只需要勾选几个选项就可以实现应用的跨平台安装(图5)。
图5应用商店中的UWP应用
对于应用程序,UWP解决了跨平台的封装问题。但是从上面的介绍中我们可以知道,UWP(APPX包)和MSI是两种完全不同的包格式,分别对应的是微软推广的应用和目前最流行的EXE程序。
如何将两者融合在一起?MSIX应运而生,集合了APP应用和MSI文件封装格式的功能。新的MSIX安装程序将支持所有的Windows文件格式,包括Win32,WPF,WinForm和UWP。
这样,只要开发者遵循MSIX封装协议,开发出来的应用就会被封装进去。MSIX格式,并发布到Windows 10应用商店。下载后,用户可以根据自己的实际需要选择自己的安装方式(图6)。
图6 MSIX通用格式
比如很多习惯了Windows 7的用户都喜欢运行EXE文件。这类程序功能更全面,扩展功能更丰富。然而,许多平板电脑用户更喜欢APPX应用程序,它具有清爽的界面和简单的操作。
以后我们只需要从app store下载安装自己喜欢的应用,而不是把EXE程序下载到华军网站,再从商店下载应用。
MSIX将给我们带来安全和便利。
如上所述,传统的EXE文件功能强大,但是我们都知道很多恶意软件和病毒也是用这种格式开发的。通常我们电脑中的病毒和木马,大多是EXE文件带来的。传统程序在带来便利的同时,也给我们带来了极大的安全隐患。
与EXE程序相比,应用的安全性提高很多,因为一方面应用的开发需要打包证书(这样证书就可以追溯到恶意应用的开发者),另一方面应用安装包上传到商店运行安全性和合规性测试后需要通过微软的审核。
彻底杜绝恶意软件的存在。因此,从商店下载MSIX文件可以给用户带来前所未有的安全性。当然,二合一的包装也方便了用户选择自己的安装方式,也给开发者带来了极大的便利。微软将开源MSIX文件格式,
我期待MSIX档案的普及。