2023年12月3日发(作者:)
三一文库()
〔Windows 10的MSIX究竟是什么〕
技术宅
追根溯源了解MSIX的前世今生
大家知道从Windows8引入Windows商店开始,在Windows系统中软件就分为两大类,一类是传统的.exe文件系统,称之为“程序”(ProgramFiles),一般装在C:\ProgramFiles下;另一类则称之为“应用”(Application),大多安装在C:\ProgramFiles\WindowsApps下(图1)。
对于传统的标准EXE程序,默认使用的是MSI封装格式,MSI是MicrosoftInstaller的简写,是微软格式的安装包,Windows10应用则使用APPX格式封装。这样开发者为Windows10系统开发应用时就常常需要使用两种独立封装格式。为了简化开发者的封装工作,微软引入了全新的安装包格式MSIX(=MSI+APPX),这就是MSIX的来由(图2)。
组合格式的背后MSIX封装解析
如上所述,MSIX=MSI+APPX,微软推出这种格式的目的
第 1 页 共 4 页
是为了简化开发者的封装工作。那么MSIX是怎么实现这个功能的呢?
首先我们来了解一下MSI封装格式。MSI文件是WindowsInstaller的数据包,从本质上讲它实际上是一个数据库,其中包含一个程序所需要的信息和在很多安装情形下安装(和卸载)程序所需的指令和数据。它将单纯的程序文件和功能封装在一起,并且包含有关的安装过程信息,比如安装路径、系统运行库文件、安装选项等信息。这样使用标准MSI格式封装的程序,我们在安装的时候可以记录各种详细的信息,卸载的时候则可以根据这些信息将程序完全卸载,即使安装过程中出现错误,我们同样可以借助这些信息恢复到安全前的状态。因此很多大公司开发的软件都使用MSI格式进行封装(图3)。
APPX则是Windows8之后新增的一种应用格式,其实质是一个准备好分配和安装的应用程序包。将安装包上传到Windows商店后,在出售之前,商店会运行安全性和遵从性测试,确保用户从应用商店下载的都是安全性的应用。但是由于目前CPU架构有ARM、x86、x64之分,因此APPX主要有.appx(非通用安装包,在ARM、x86、x64设备上需要不同的安装包)、.appxbundle(同一应用的APPX打包,将不同平台需要的APPX压缩在一起)、.appxsym(UWP符号文件)、.appxupload(开发者向商店上传应用用的文件)四种
2 4


发布评论