.Net安装程序 - .exe和.msi之间的区别

12

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

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

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


我也想知道这个答案。+1 - Ash Burlaczenko
我也一直很好奇! - TabbyCool
3个回答

11

这个exe文件是一个引导程序,它会安装任何所需的先决条件,然后调用你的设置(即.msi文件)。

你可以直接运行.msi文件开始设置,但如果未安装所需的先决条件(例如:.Net框架、VC++可再发行、较新版本的MSI等),则设置将失败。

当你尝试使用引导程序(exe文件)和你的.msi文件丢失时,它会失败,因为基本上它会安装所有的先决条件,然后尝试启动你的安装程序(即.msi文件)。如果该文件不存在,则无法启动。

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


1

1
你能否添加/引用/总结一下那个链接中的内容?以防链接失效,这将来会变得无用... - Michael Paulukonis

1

我相信MSI文件只是安装脚本,与Windows Installer相关联。可执行文件包装了MSI,创建了一个加载器,可以安装先决条件,但基本上做的事情是一样的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接