.Net安装程序 - .exe和.msi之间的差异

问题描述:

我使用安装程序部署我的应用程序,该安装程序是使用Visual Studio中的安装和部署项目创建的。当我建立安装项目时,我得到一个.exe和一个.msi文件。.Net安装程序 - .exe和.msi之间的差异

我想知道他们之间的区别。

我注意到如果没有.msi,.exe不能工作,但反过来并不是这样。

+0

我也想知道这个答案。 +1 – 2010-12-13 13:25:03

+0

我总是想知道! – TabbyCool 2010-12-13 13:26:05

阿德里安是正确的。这可能会添加更多信息。

http://www.ghacks.net/2009/03/23/msi-or-exe-setup/

+1

您可以添加/引用/汇总该链接的一些内容吗?在链接腐烂的情况下,这将在未来无用...... – 2011-02-18 17:58:53

该exe文件是一个bootstrapper安装任何必需的先决条件,然后调用您的设置,这是msi文件。

您可以通过自身启动安装,运行MSI文件,但如果需要的先决条件未安装(可能的例子:.NET Framework中,VC++可再发行,MSI的新版本等),它会失败

当你试图用引导程序(exe文件)运行安装程序并缺少msi时,它会失败,因为基本上它会安装所有先决条件,然后它会尝试启动安装程序(msi文件)。如果文件不在那里,它就没有什么开始。

根据您的应用需求,类似的技术将使用Merge Modules作为您的应用程序先决条件。合并模块基本上会将所有必需的组件加载到主安装程序中,因此您最终只需使用一个包含所有内容的MSI文件。您必须确保您使用的每个组件都具有可用的合并模块,如果没有,则必须使用引导程序。

相信MSI文件是安装脚本只是,与联想是Windows安装程序。可执行文件包装MSI,创建一个几乎完全相同的东西,但可以安装先决条件的加载器。