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


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


MSI基本上是微软内置在windows中的安装程序。它将组件与特性关联起来,并包含安装控制信息。这个文件不一定包含用户实际需要的文件,即用户期望的应用程序。MSI可以包含另一个setup.exe在里面,MSI包装,它实际上包含用户所需的文件。

希望这能消除你的疑虑。


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

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

你可能想要使用setup.exe的一些原因:

Windows Installer only allows one MSI to be installing at a time. This means that it is difficult to have an MSI install other MSIs (e.g. dependencies like the .NET framework or C++ runtime). Since a setup.exe is not an MSI, it can be used to install several MSIs in sequence. You might want more precise control over how the installation is managed. An MSI has very specific rules about how it manages the installations, including installing, upgrading, and uninstalling. A setup.exe gives complete control over the software configuration process. This should only be done if you really need the extra control since it is a lot of work, and it can be tricky to get it right.


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

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

编辑(在评论中建议):安装可执行文件内部不一定有MSI资源