在Windows上安装软件的时候,一般有两种方式:
- Windows安装包(.msi)
- Windows二进制文件(.exe)
这两种安装方式的区别如下:
- .exe是一个安装引导程序。它是安装工程通过MSBuild创建的,其中包含了一个XML文件,定义了应用程序所需要的系统必备安装包信息。Setup.exe程序会检查这些系统必备安装包是否需要被下载和安装,如果需要,它就会先安装那些系统必备程序。当我们运行它的时候,它会读取setup.ini来确定安装所需要的配置并开始安装流程。
- .msi是一个Windows Installer包。和.exe不一样,直接运行MSI安装包不会自动安装自定义系统必备。它只会安装主应用程序。当我们“运行”它的时候,其实是Windows Installer在执行MSI包定义的各项操作。因此我们需要安装Windows Installer的正确版本才能运行.msi。
另外,
- .msi是微软的自解压文件,如安装某些软件时就是这种文件格式打包而成的,Windows系统中自带有软件将其解压。正如WINRAR可以将文件压缩成.rar文件,也可以将.rar文件解压一样;
- 而.exe是可执行文件类型,通俗一点来说.exe文件是不依靠其他软件而单独运行的文件(当然不能脱离系统),因为.exe就是软件。
最后,
msi是Windows installer开发出来的程序安装文件,是Windows installer的数据包,把所有和安装文件相关的内容封装在一个包里了。
.exe也允许你安装程序,但程序员在开发.exe的时候要比开发.msi困难的多,需要人工编写和安装,修改,卸载相关的很多内容。而msi把这写功能都集成化了,易于开发WINDWOS程序安装包。