【问题标题】:What's the prime advantage to having an MSI installation package?拥有 MSI 安装包的主要优势是什么?
【发布时间】:2023-04-10 03:49:02
【问题描述】:

我以为这会在网络上的某个地方,但我无法谷歌它:

考虑到创建 MSI 包所涉及的复杂性(与 NSIS、InnoSetup 等相比),有什么令人信服的理由去经历所有这些混乱(使用 MSVS 糟糕的设置项目向导,学习一个全新的语言/生态系统只是为了制作安装程序 (WiX),还是为了制作 MSI 安装程序而支付高昂的许可证费用 (InstallShield)?

除了显而易见的MSDN page 之外,如果能有真实世界的观点或经验(甚至证明 MSI 真的毫无价值),那就太好了:)

【问题讨论】:

标签: deployment windows-installer installation


【解决方案1】:

我不认为所有情况都有一个主要优势。与其他类型的安装程序相比,我喜欢它的一些地方:

  • 安装逻辑和代码包含在数据库中,该数据库采用可访问的格式。 我在调试时非常喜欢这个。无需重新构建安装程序,您可以使用 Orca 之类的工具(从 MS 免费数据库编辑下载)直接编辑数据库,然后再次运行安装以测试您的更改。更新您的自定义代码,临时调整某些内容,更改操作顺序,无论您需要做什么。

  • 修补。安装程序服务及其相应的工具知道如何创建包含更新文件的增量的补丁,而不是完整的文件。它使维护规模保持合理。

  • 管理图像。安装程序可以创建管理映像。如果您已生成补丁,则可以将补丁应用到管理映像,然后可以从管理映像而不是原始安装程序运行新安装。就像操作系统映像中的滑流补丁一样。如果您要将您的应用程序推送到大量机器上,那么无需在安装后推送大量补丁程序非常酷。

其他有趣的功能包括转换、从源代码运行、检测和修复、组件共享等。

【讨论】:

  • 我会说这些功能对大多数人来说太先进了。被接受为一个清晰的答案。谢谢!
  • @Ed - 您遗漏了修补最重要的好处之一,即您可以在不触发 UAC 提示的情况下将更新应用到应用程序。如果不打补丁,您将不得不安装一些在特权模式下运行的自定义 Windows 服务,以便在不提示管理员访问权限的情况下安装应用程序更新。 msdn.microsoft.com/en-us/library/windows/desktop/…
【解决方案2】:
【解决方案3】:

MSI(或 ClickOnce)需要获得 Windows Vista 徽标计划(Microsoft 官方认证)。我相信此要求已在 Windows 7 中删除,但通过 MSI 获得认证仍然更容易(请参阅here)。

不过,您无需购买任何昂贵的第 3 方安装程序包。如果您要参加 MSI,我建议您使用 WIX 并学习它。一旦你熟悉它,它就会很好地工作。

【讨论】:

    【解决方案4】:

    另一个不错的读物是:

    Windows Installer: Benefits and Implementation for System Administrators

    我已经是 14 年的全职设置开发人员。我的前 7 年是 InstallScript Setup.exe 风格的项目,而我最近的 7 年是基于 MSI 的。起初我拒绝 MSI,但在使用了 6 个月后,我真正相信它有多好。

    【讨论】:

    • 您能详细说明一下吗?似乎您已经获得了回答“什么是主要优势”这个问题的经验?是什么让你特别相信?
    • 作为 ISV,我作为安装开发人员的主要优势是让我可以专注于我的安装程序需要做的事情,而不是如何去做。作为企业工程师,主要优势是能够检查和转换包。我花了 2 年的时间将表现不佳的安装程序“重新打包”到遵循最佳实践的 MSI 中,以便我可以将它们静默部署(安装和卸载)到全球数万台机器上。非 MSI 可以做到这一点,但我遇到的绝大多数(很多)做得很差。
    【解决方案5】:

    我很确定有些企业需要 MSI 格式才能在数千台机器上远程批量安装应用程序。但是我不与此类组织打交道,所以不确定。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-24
      • 2011-01-07
      • 1970-01-01
      • 1970-01-01
      • 2021-04-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多