【问题标题】:What are the differences between MSI and EXE installers, and which should I choose? [duplicate]MSI 和 EXE 安装程序有什么区别,我应该选择哪个? [复制]
【发布时间】:2011-01-28 00:03:45
【问题描述】:

可能重复:
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,但是资料不多。

【问题讨论】:

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


【解决方案1】:

我不会将 WiX 用于新项目。我会在 Visual Studio 中使用“安装程序项目”来构建 MSI。安装程序项目要容易得多。

许多 exe 安装程序实际上是保存 MSI 的存根或容器,顺便说一句。

我猜你已经签出http://en.wikipedia.org/wiki/Windows_Installer?

MSI 让管理员能够限制安装、变基安装、更改或添加自定义操作、自动安装/重新安装/卸载、标准日志记录和切换。它只是真正集成到企业 IT 环境中(http://technet.microsoft.com/en-us/library/bb742606.aspx)。

自定义安装程序可能具有许多这些功能,但这取决于安装程序包。

【讨论】:

  • 只是想让看到此答案的任何人都知道,对于 2010 年以后的 Visual Studio 版本,它不再准确。Visual Studio 2012 不再支持安装和部署项目。
  • 对于 Visual Studio 2013 及更高版本,在 VS 市场上有一个名为“Microsoft Visual Studio 2013 安装程序项目”(将 2013 替换为您的版本)的扩展程序,它支持旧的安装程序项目。但是,它有一个错误,阻止它安装 64 位应用程序,并且它生成的向导中的文本没有抗锯齿,所以它看起来已经过时了。
【解决方案2】:

当今可用的大多数 EXE 安装程序只是用于验证目标计算机是否有足够的支持来启动存储在 EXE 中的 MSI。他们进行基本的 Windows 版本检查和 Windows Installer 版本检查,然后基本上调用 msiexec 并让 Windows Installer 处理其余部分。

对于非常基本的安装,Visual Studio 中的安装程序项目可以帮助您完成,但对于任何类型的真正自定义或调整,您都需要一个真正的 MSI 编辑器。我们使用 WiX 并且喜欢它 - 但它是一个需要学习的熊。如果您有足够的资金,您可以投资 InstallShield - 但它有自己的一套怪癖。

【讨论】:

    【解决方案3】:

    MSI 是 configurable 而 EXE 不是。我知道这不能直接回答您的问题,但我认为我应该指向 ClickOnce 技术。

    MSDN:See example here.

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

    【讨论】:

    • 有趣 - 我知道 ClickOnce,但我认为它只是通过 Internet 分发软件的一种方式。我得看看网络共享的东西 - 谢谢!
    • 很遗憾 ClickOnce 没有 CustomActions。
    【解决方案4】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-04-22
      • 1970-01-01
      • 2019-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多