【问题标题】:Installshield Chained MSI not executing repair for individual MSIInstallshield Chained MSI 未对单个 MSI 执行修复
【发布时间】:2015-05-11 06:08:08
【问题描述】:

我在链接的 msi 基本 MSI 项目中有 3 个 MSI。

安装和卸载工作正常,但如果我选择修复,InstallShield 只会执行父 MSI 并忽略其中的所有其他 MSI。

我已按照 http://community.flexerasoftware.com/showthread.php?191832-Repair-chained-msi

并在选项列上设置 ecoReinstallInstalled,但它似乎不起作用

知道我错过了什么吗?

【问题讨论】:

    标签: windows-installer installshield


    【解决方案1】:

    您将需要设置名为 ecoReinstallInstalled 的标志(Installshield 帮助未提及此关键字),该标志在标题为“使用链式 MSI 包组件化您的 Windows 安装程序设置”的文档中有所提及。

    基本上,您可以通过将值 16 添加到当前值来更改指定链式 MSI 的 ISChainPackage 表的“选项”列。如果值小于 16;例如值为0,用16代替;如果值为 1,则将其替换为 17,依此类推。选项值确定 UI 级别模式(链接的 MSI 将运行的模式); 0 表示基本 UI,1 表示无 UI,值 16 或更高将允许链接的 MSI 在已安装后重新运行。

    如果这不起作用,您应该通过修改属性 IS_CHAINER_POST_COMMANDLINE 来检查链接的 MSI 的日志文件,您也可以尝试在 ui 模式下运行链接的 MSI 以查看行为。

    有趣的是,您使用什么替代方案来代替链式 MSI 功能?

    看看我的博客,顺便说一下网页正在进行中:

    http://installdeploy.com/wordpress/blog/

    【讨论】:

      【解决方案2】:

      所以你有一个包装器或父 MSI 产生 3 个链接的 MSI?您需要通过 install 属性将 REINSTALL=ALL 传递给每个链接的 MSI。但前提是每个 MSI 都已安装,因此可能需要一个自定义操作来检测是否首次安装,然后使用 REINSTALL=ALL 设置一个或多个属性。

      http://installdeploy.com/blog/

      【讨论】:

      • 我这样做了,但没有用。我们最终决定摆脱链接的 MSI。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多