MSI和EXE安装程序之间有什么区别,我应该选择哪个?

时间:2010-03-16 07:22:18

标签: c# .net installer windows-installer exe

  

可能重复:
  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,但没有太多信息。

4 个答案:

答案 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技术。

MSDNSee example here.

  

简单地说,是一个ClickOnce应用程序   是任何Windows演示文稿   基础,Windows窗体或控制台   使用ClickOnce发布的应用程序   技术。你可以发表一个   三个ClickOnce应用程序   不同的方式:从网页,从   网络文件共享,或来自媒体   例如CD-ROM。 ClickOnce   应用程序可以安装在一端   用户的计算机甚至在本地运行   当计算机离线时,或者它   可以在仅在线模式下运行   没有永久安装   最终用户计算机上的任何内容。   有关更多信息,请参阅选择a   ClickOnce部署策略。

答案 3 :(得分:1)

IndigoRose的MSI工厂非常强大,比InstallShield便宜得多。

它在内部使用WiX,允许您以任何您喜欢的方式修改XML文件。引导程序(.exe,如果你添加一个)有一个强大的基于Lua的脚本引擎来做任何事情。