关于MSI文件的知识,看这篇文章就够了
本文解释了什么是MSI文件,以及如何编辑或打开MSI文件。它还解释了如何将其转换为ISO或EXE文件。
什么是MSI文件
具有MSI文件扩展名是Windows安装程序包文件。它由某些版本的Windows在从Windows更新安装更新时使用,也由其他安装程序工具使用。
MSI文件保存安装软件所需的所有信息,包括应安装的文件以及这些文件应安装在计算机上的位置。
如何打开MSI文件
Windows Installer是Windows操作系统用于在双击MSI文件时打开它们的工具。它不需要安装到你的计算机上或从任何地方下载,因为它是Windows内置的。打开MSI文件应调用Windows Installer,以便你可以安装其中包含的文件。
注意:MSI是可执行文件扩展名,因此在打开MSI文件时要小心。MSI文件以类似存档的格式打包,因此实际上可以使用文件解压缩实用程序(如7-Zip)解压缩内容。如果安装了该程序或类似程序(大多数程序的工作方式类似),则可以右键单击MSI文件,然后选择打开或解压缩该文件,以查看存储在其中的所有文件。
如果要在Mac上浏览MSI文件,使用文件解压缩工具也很有用。由于MSI格式由Windows使用,因此不能在Mac上双击它并期望它打开。
解压缩组成MSI文件的部分并不意味着你可以“手动”安装该软件-MSI将自动为你进行安装。
如何转换MSI文件
只有在将文件解压缩到文件夹后,才能将MSI转换为ISO。使用如上所述的文件解压缩工具,以便文件可以存在于常规文件夹结构中。然后,在安装了类似WinCDEmu的程序后,右键单击该文件夹并选择构建ISO镜像。
另一个选项是将MSI转换为EXE,这可以使用Ultimate MSI to EXE Converter来完成。该程序使用起来很简单:选择MSI文件并选择EXE文件的保存位置,没有其他选择。
APPX文件在Windows 8中引入,与MSI类似,是在Windows操作系统中运行的应用程序包。
如何编辑MSI文件
编辑MSI文件不像编辑大多数其他文件(如DOCX和XLSX文件)那样简单,因为它不是文本格式。然而,微软提供了Orca程序,作为Windows Installer SDK的一部分,用于编辑MSI文件。
要在没有整个SDK的情况下以独立格式使用Orca,请从Technipages下载此副本。安装程序后,右键单击MSI文件并选择“使用Orca编辑”。
还是打不开MSI文件
MSI文件应该相当容易打开,特别是在Windows中。如果它没有正确打开,或者当你双击它时它根本没有做任何事情,请首先检查你的计算机是否存在病毒。MSI文件可以携带恶意软件,如果你的文件感染了什么,它可能会在打开时看起来什么也不做。
一旦你排除了恶意软件,请检查文件扩展名是否实际为MSI。如果是其他内容,则你正在处理不同的文件格式,在这种情况下,上面的信息可能没有帮助。
例如,MSL文件看起来与MSI文件相关,但这只是因为文件扩展名相似(特别是小写:msl vs MSI)。MSL文件与某种类型的脚本相关,这意味着它可能可以在任何文本编辑器中查看和编辑。
另一个是MSIM,它是为mSecure密码管理器备份文件保留的。
有关Windows Installer文件的详细信息
MSI最初表示使用此格式的程序的标题:Microsoft Installer。然而,名称后来更改为Windows Installer,因此文件格式现在称为Windows Installer Package。
MSU文件类似,但它是Windows更新在某些版本的Windows上使用的Windows Vista Update软件包文件,并由Windows更新独立安装程序(Wusa.exe)安装。
MSIX文件基于MSI格式,但是Windows 10和更高版本中使用的ZIP压缩包。微软的App Installer工具会打开它们,任何ZIP解压缩工具,包括7-ZIP,都可以提取其内容。
Windows 10的MSIX究竟是什么?
微软曾宣布Windows 10将引入一种全新的安装包格式“MSIX”,它可以被看成现有MSI的升级版,几乎支持所有程序格式。到底是新技术还是旧酒装个新瓶子,就让我们来一睹究竟。
追根溯源,了解MSIX的前世今生
大家知道从Windows 8引入Windows商店开始,在Windows系统中软件就分为两大类,一类是传统的.exe文件系统称之为“程序”( Program Files),一般装在C:\Program Files下;另一类则称之为“应用”(Application),大多安装在C:\Program Files\WindowsApps下(图1)。
图1 Windows 10应用安装位置
对于传统的标准EXE程序,默认使用的是MSI封装格式,MSI是Microsoft Installer的简写,是微软格式的安装包,Windows 10应用则使用APPX格式封装。这样开发者为Windows 10系统开发应用是就常常需要为应用两种独立封装格式,为了简化开发者的封装工作,微软引入了全新的安装包格式MSIX(=MSI+APPX),这就是MSIX的来由(图2)。
图2 MSIX格式
组合格式的背后,MSIX封装解析
如上所述MSIX=MSI+APPX,微软推出这种格式的目的是为了简化开发者的封装工作。那么MSIX是怎么实现这个功能的呢?
首先我们来了解一下MSI封装格式,MSI文件是Windows Installer的数据包,从本质上将它实际上是一个数据库,其中包含一个程序所需要的信息和在很多安装情形下安装(和卸载)程序所需的指令和数据。它将单纯的程序文件和功能封装在一起,并且包含有关安装过程信息,比如安装路径,系统运行库文件,安装选项等信息。这样使用标准MSI格式封装的程序,我们在安装的时候可以记录各种详细的信息,卸载的时候则可以根据这些信息将程序完全卸载,即使安装过程中出现错误,我们同样可以借助这些想信息恢复到安全前状态。因此很多大公司开发的软件都使用MSI格式进行封装(图3)。
图3 MSI格式
APPX则是Windows 8之后新增的一种应用格式,其实质一个准备好分配和安装的应用程序包。将安装包上传到Windows商店后,在出售之前,商店会运行安全性和遵从性测试,确保用户从应用商店下载的都是安全性的应用。但是由于目前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通用应用(Windows10 Universal App),它构建了一整套可以在各种Windows平台上使用的通用而现代的跨语言API,再加上良好的文档和应用商店体系。实现了开发者的一份代码几乎完全不用改动,只用在生成安装包的时候勾选几个选项就可以实现应用的跨平台安装(图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应用,这种应用界面清爽,操作简单。以后我们只要从应用商店下载安装自己喜欢的应用即可,而不是像现在EXE程序要到华军这些网站下载,应用则要到商店下载。
MSIX,将带给我们安全和便利
如上所述,传统EXE文件功能强大,但是大家也知道很多恶意软件,病毒也都是使用这种格式开发的。平时我们电脑的病毒、木马大多是EXE文件带来的,传统程序在带来便利的同时也给我们带来极大的安全隐患。
应用相对EXE程序来说安全性就提高了许多,这是因为一方面应用的开发需要打包证书(这样通过证书就很容追溯到恶意应用的开发者),另一方面应用安装包在上传到商店后需要通过微软的审核,运行安全性和遵从性测试,彻底杜绝恶意软件的入驻。因此从商店下载的MSIX文件可以给用户带来前所唯有的安全性。当然二合一方式的封装也便于用户自行选择安装方式,给开发者同样带来极大的便利。而且微软会将MSIX文件格式进行开源化,期待MSIX文件普及早些到来。