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