可能重复:
What are the specific differences between .msi and setup.exe file?
我正在为我的项目的新版本(C#)安装一个安装程序。
以前,我使用Inno Setup创建.exe
文件,以便在工作场所的其他计算机上安装我的项目。不过,在阅读一些教程时,我遇到Windows Installer XML,它使用XML文件构建.msi
安装程序。
我的项目将在所有员工都可以访问的网络共享中提供,以便他们可以安装软件(我目前正在进行更新检查)
.exe
和.msi
安装程序之间的主要区别是什么?为什么我要选择一个而不是另一个?考虑到我的特定环境,要么更有意义吗?
我找到了一些信息at this question,但没有太多信息。
答案 0 :(得分:5)
我不会将WiX用于新项目。我在Visual Studio中使用“安装程序项目”来构建MSI。安装程序项目组合起来要容易得多。
许多exe安装程序实际上是包含MSI的存根或容器,顺便说一句。
我猜你已经查看http://en.wikipedia.org/wiki/Windows_Installer了?
MSI使管理员能够限制安装,重新安装,更改或添加自定义操作,自动执行安装/重新安装/卸载,标准日志记录和交换机。它只是真正集成到企业IT环境中(http://technet.microsoft.com/en-us/library/bb742606.aspx)。
自定义安装程序可能具有许多这些功能,但这取决于安装程序包。
答案 1 :(得分:5)
目前可用的大多数EXE安装程序都是简单的存根,用于验证目标计算机是否具有足够的支持来启动存储在EXE中的MSI。他们进行基本的Windows版本检查和Windows Installer版本检查,然后基本上调用msiexec并让Windows Installer处理剩下的工作。
对于非常基本的安装,Visual Studio中的安装程序项目可以帮助您,但对于任何类型的真正自定义或调整,您将需要一个真正的MSI编辑器。我们使用WiX并喜欢它 - 但这是一个值得学习的熊。如果你有现金,你可以投资InstallShield - 但这有它自己的一套怪癖。
答案 2 :(得分:3)
MSI为configurable,而EXE则不是。我知道这不能直接回答你的问题,但我认为我应该指向ClickOnce技术。
简单地说,是一个ClickOnce应用程序 是任何Windows演示文稿 基础,Windows窗体或控制台 使用ClickOnce发布的应用程序 技术。你可以发表一个 三个ClickOnce应用程序 不同的方式:从网页,从 网络文件共享,或来自媒体 例如CD-ROM。 ClickOnce 应用程序可以安装在一端 用户的计算机甚至在本地运行 当计算机离线时,或者它 可以在仅在线模式下运行 没有永久安装 最终用户计算机上的任何内容。 有关更多信息,请参阅选择a ClickOnce部署策略。
答案 3 :(得分:1)
IndigoRose的MSI工厂非常强大,比InstallShield便宜得多。
它在内部使用WiX,允许您以任何您喜欢的方式修改XML文件。引导程序(.exe,如果你添加一个)有一个强大的基于Lua的脚本引擎来做任何事情。