.Net Installer - .exe和.msi之间的差异

时间:2010-12-13 13:22:54

标签: .net installer setup-deployment

我正在使用我在Visual Studio中使用安装和部署项目创建的安装程序来部署我的应用程序。当我构建安装项目时,我得到一个.exe和.msi文件。

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

我注意到.exe在没有.msi的情况下无法工作,但事实并非如此。

3 个答案:

答案 0 :(得分:10)

exe文件是bootstrapper,它安装了所有必需的先决条件,然后调用你的设置,即msi文件。

您可以自行启动设置,运行msi文件,但如果未安装所需的先决条件,则会失败(可能的示例:.Net框架,VC ++可再发行版,MSI的新版本等)

当您尝试使用bootstrapper(exe文件)运行安装程序并且缺少msi时,它会失败,因为基本上它将安装所有先决条件,然后它将尝试启动安装程序(msi文件)。如果文件不存在,则无法启动。

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

答案 1 :(得分:1)

阿德里安是对的。这可能会增加一些信息。

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

答案 2 :(得分:1)

我认为MSI文件只是用于安装的脚本,其关联是Windows Installer。可执行文件包装MSI,创建一个加载器,它可以完成同样的操作,但可以安装必备软件。