.msi和setup.exe文件之间有什么具体区别?


193

我搜索了很多,但所有答案都是猜测。帮助我找到确切的答案。




我想安装EXE和MSI安装程序随附的程序。我首先从MSI安装,它仅安装程序文件(没有任何先决条件或依赖性,并且未创建“开始菜单”图标)。当我手动启动该程序时,它无法显示某些DLL丢失。从EXE安装也安装了其他东西,该产品运行良好。我会说,如果软件制造商同时提供EXE和MSI选项进行安装,请使用EXE。
James L.

Answers:


232

MSI是Windows Installer数据库。Windows Installer(与Windows一起安装的服务)使用它在系统上安装软件(即,复制文件,设置注册表值等)。

setup.exe可以是引导程序,也可以是非msi安装程序。非msi安装程序将从其本身提取安装资源并直接管理其安装。引导程序将包含MSI而不是单个文件。在这种情况下,setup.exe将调用Windows Installer来安装MSI。

您可能要使用setup.exe的某些原因:

  • Windows Installer一次只允许安装一个MSI。这意味着很难让MSI安装其他MSI(例如,.NET框架或C ++运行时之类的依赖项)。由于setup.exe不是MSI,因此可以用来按顺序安装多个MSI。
  • 您可能需要对安装管理方式进行更精确的控制。MSI对于如何管理安装(包括安装,升级和卸载)具有非常具体的规则。setup.exe可以完全控制软件配置过程。仅当您确实需要额外的控制权时才应执行此操作,因为这需要进行大量工作,并且要正确完成它可能很棘手。

7
我要输入此内容-这可能是他要寻找的内容
猫鼬(Mongoose)2009年

1
根据我的经验与构建基于exe的安装程序相比,构建MSI安装程序需要大量工作。首先,这很大程度上取决于您用来构建安装程序的工具。不幸的是,我见过的所有基于MSI的安装程序工具都是商业GUI工具或复杂的基于WiX的工具。两者都不很适合我的需求(即使用脚本自动构建安装程序)。
–craftworkgames

所以我仍然想知道为什么MSI存在。exe似乎可以正常运行时,它试图解决什么问题?
,松饼人

14

.msi文件是没有Windows安装程序运行时的Windows安装程序文件,setup.exe可以是任何可执行程序(可能是一个在计算机上安装东西的程序)。


9

MSI是一个安装程序文件,可将您的程序安装在执行系统上。

Setup.exe是一个应用程序(可执行文件),其中msi文件作为其资源之一。执行Setup.exe将依次执行msi(安装程序),该程序将您的应用程序写入系统。

编辑(如注释中所建议):安装程序可执行文件不一定在内部具有MSI资源


安装程序可执行文件不一定在内部具有MSI资源。
jkmartindale

-9

MSI基本上是Windows中内置的Microsoft安装程序。它将组件与功能相关联,并包含安装控制信息。该文件不必包含实际的用户所需文件,即用户期望的应用程序。MSI可以在其中包含另一个MSI包装的setup.exe,它实际上包含用户所需的文件。

希望这可以消除您的怀疑。


13
这是令人困惑的并且通常是不正确的-因为MSI文件通常包装setup.exe文件,反之亦然。
Flak DiNenno 2014年

“ MSI可以在其中包含MSI包装的另一个setup.exe”是不正确的!相反,情况确实如此:.exe中包含.msi。
ONE
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.