我正在使用我在Visual Studio中使用安装和部署项目创建的安装程序来部署我的应用程序。当我构建安装项目时,我得到一个.exe和.msi文件。
我想知道它们之间的区别。
我注意到.exe在没有.msi的情况下无法工作,但事实并非如此。
答案 0 :(得分:10)
exe文件是bootstrapper,它安装了所有必需的先决条件,然后调用你的设置,即msi文件。
您可以自行启动设置,运行msi文件,但如果未安装所需的先决条件,则会失败(可能的示例:.Net框架,VC ++可再发行版,MSI的新版本等)
当您尝试使用bootstrapper(exe文件)运行安装程序并且缺少msi时,它会失败,因为基本上它将安装所有先决条件,然后它将尝试启动安装程序(msi文件)。如果文件不存在,则无法启动。
根据您的应用程序需求,类似的技术是使用Merge Modules来满足您的应用程序先决条件。合并模块基本上会将所有必需的组件加载到主安装程序中,因此您最终只能使用一个包含所有内容的MSI文件。您必须确保您使用的每个组件都有可用的合并模块,否则您将不得不使用引导程序。
答案 1 :(得分:1)
阿德里安是对的。这可能会增加一些信息。
答案 2 :(得分:1)
我认为MSI文件只是用于安装的脚本,其关联是Windows Installer。可执行文件包装MSI,创建一个加载器,它可以完成同样的操作,但可以安装必备软件。