我一直在想这个。如此多的应用程序设置都有一个解压缩的zip文件,其中有一堆文件,其中包括exe和msi。有什么不同?它们通常大小相同。我永远不确定要执行哪一个,有时我会执行exe,有时候执行msi,它通常适用于任何一个。但其中一个人做了另一个不做的事吗?如果没有,是不是浪费两个文件做同样的事情?特别是在考虑下载大小等时......
不确定这应该是在这里还是在ServerFault上,或者可能都不是,但我认为,因为开发人员通常是创建安装文件的人,所以开发人员可能知道为什么这就像是=)
答案 0 :(得分:38)
在你同时拥有exe和msi的情况下,exe只是msi的加载器。如果你有一个支持多种语言的安装,那么exe在安装之前会在msi上应用语言转换(mst)。
您可以将exe视为msi的包装器。 msi文件可以单独给出,也可以不单独给出。人们提供msi文件的原因是为了促进组策略安装(在Windows Active Directory基础结构中),因为您只能下载msi文件的安装而不是exes。
答案 1 :(得分:22)
setup.exe
是MSI的包装器,但它不仅仅是 包装器。
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
答案 2 :(得分:14)
实际安装在MSI中完成。正如Prashast所说,exe只是一个包装器,但是拥有exe的原因是exe总是可以运行的。如果用户未在计算机上安装MS Installer,或者他的MS Installer版本早于安装所需的版本,则无法运行MSI文件。
在运行MSI文件之前,exe会自动安装MS Installer(如果他/她想这样做,可以向用户提出一些问题)。在大多数情况下,Microsoft Installer所需的安装包都包含在setup.exe中,或者有时仅通过链接从Microsoft下载安装程序进行检查。
答案 3 :(得分:4)
用非常基本的话说,
你只能提供.msi文件,它会安装。但.exe在没有.msi
的情况下无效