我一直都在想这个.如此多的应用程序设置都有一个解压缩的zip文件,其中有一堆文件,其中包括exe和msi.有什么不同?它们通常大小相同.我永远不确定要执行哪一个,有时我会执行exe,有时候执行msi,它通常适用于任何一个.但其中一个人做了另一个不做的事吗?如果没有,是不是浪费两个文件做同样的事情?特别是在考虑下载大小等时......
不确定这应该是在这里还是在ServerFault上,或者两者都不是,但我认为,因为开发人员通常是创建安装文件的人,所以开发人员可能知道为什么这就像是=)
在你有exe和msi的情况下,exe只是msi的加载器.如果您的安装支持多种语言,那么exe在安装之前会在msi上应用语言转换(mst).
您可以将exe视为msi的包装器.msi文件可以单独给出,也可以不单独给出.人们提供msi文件的原因是为了促进组策略安装(在Windows Active Directory基础结构中),因为您只能下载msi文件的安装而不是exes.
的setup.exe
是微星的包装,但它不是唯一的一个包装.
该setup.exe
可以依靠setup.ini
定义参数
setup.exe
Windows Installer 的检查(否则无法安装MSI)
该setup.exe
可以检查框架,例如.NET框架.开发人员可以选择其中一个C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages
(对于Visual Studio 2008).如果缺少,它将尝试从http://www.microsoft.com/下载它
该setup.exe
可重新配置msistuff.exe
实际安装在MSI中完成.正如Prashast所说,exe只是一个包装器,但是拥有exe的原因是exe总是可以运行的.如果用户未在计算机上安装MS Installer,或者他的MS Installer版本早于安装所需的版本,则无法运行MSI文件.
在运行MSI文件之前,exe提供MS Installer的自动安装(如果他/她想这样做,则向用户提出一些问题).在大多数情况下,Microsoft Installer所需的安装包都包含在setup.exe中,或者有时仅通过链接从Microsoft下载安装程序进行检查.