wix - 基于 MSI 的安装相对于基于 MSI 包装脚本的安装的具体优势?

标签 wix windows-installer inno-setup nsis

免责声明:我仍然没有超越最基本的WiX教程,因为每次我试图理解这些概念时,我的头开始旋转。

我一直在阅读Is it feasible/sensible to wrap an InnoSetup installer inside an MSI for easier distribution via AD? :

  • 今天有一个工具(寻找 exemsi MSI 包装器)可以包装基于脚本/exe 的安装程序,如 InnoSetup,并提供安装、升级和卸载。
  • 根据我的经验,这就是用户所期望的:可以安装产品,较新的设置可以升级它,卸载将删除产品。
  • Yet quite a few该问题的答案表明,只有“真正的”MSI 才能可靠地提供“所有”(?)所需的(?)功能。

  • 所以,考虑到什么 一直认为安装程序应该做的是:
  • 以尽可能少的麻烦安装产品
  • 允许修复产品(可能只需再次运行安装程序)
  • 允许通过更新的设置升级产品
  • 最终卸载产品,尽可能少留下痕迹。

  • 问题 是,鉴于事实证明,如果使用正确的工具,只需将 exe 包装在 MSI 中即可实现上述要点,那么“真正的”MSI 软件包还能提供哪些额外优势?

    在这里要明确:MSI 包确实(似乎)为企业/AD/GPO 分发提供了额外的好处,如果您拥有裸机 .exe 则没有这些好处。安装程序 - 我不怀疑。我感兴趣的是 - 实际使用的 - 功能只能通过“真正的”MSI 包实现?

    最佳答案

    MSI 支持按需安装附加功能。 MSI 创建的快捷方式 (.lnk) 包含特殊的 metadata被 Windows 识别并可以自动修复和/或安装缺失的功能。

    另一个优点是非管理员可以安装补丁without UAC elevation如果包裹已签名。

    MSI 的一些缺点是:

  • 无法为 32 位和 64 位目标创建单个 .msi。
  • 单用户/非高级安装程序可能会出现问题,因为对此的支持有 changed over time并添加了新的 MSI 属性。
  • 根据您支持的最低 Windows 版本,您可能需要测试/处理多个主要版本的 MSI。
  • 在最新版本的 Windows 上将完整的 .msi 存储在 %windir%\Installer 中,从而使系统驱动器膨胀。
  • 通过存储有关它安装的每个文件的路径和其他信息来膨胀注册表。
  • 关于wix - 基于 MSI 的安装相对于基于 MSI 包装脚本的安装的具体优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41273265/

    相关文章:

    vb.net - Windows应用程序的在线注册安装程序

    inno-setup - 从 Inno Setup 下载页面隐藏 URL

    属性值的 WiX 自定义操作条件

    wix - 如何抑制合并模块中的 ICE 错误

    wix - 如果回滚自定义操作失败会发生什么情况?

    wix - 默认情况下,每用户 MSI 未提升 - 如何显示写入文件夹的提升提示?

    wix - 在 WIX MSI 描述中设置标题

    windows-installer - Visual Studio 2015 vdproj -- 更改或删除数字签名

    windows - 如何创建快捷方式以从 cmd 行启动具有管理员权限的应用程序?

    node.js - 如何从 Inno Setup 调用 "npm install"?