【问题标题】:Making changes to installed MSI更改已安装的 MSI
【发布时间】:2021-05-24 21:06:30
【问题描述】:

我将尝试通过示例来解释这个问题。我有mypackage-v1.0.msimypackage-v1.1.msi。静默安装时的两个软件包都需要 PASSWORD 参数:

msiexec /i mypackage-v1.0.msi /qb PASSWORD=SomeThing1

mypackage-v1.0.msi 已经安装,mypackage-v1.1.msi 应该升级 mypackage-v1.0.msi。两个包中都有一个依赖于此参数的自定义操作,但由于在 mypackage-v1.0.msi 中调节此自定义操作的问题,在升级过程中会执行它,但不会将 PASSWORD 参数传递给它。

我想知道在升级到 mypackage-v1.1.msi 之前是否有办法修补 mypackage-v1.0.msi。但是补丁并没有改变安装的任何内容,而是包本身。有可能吗?

编辑: 更集中的输入 - 补丁是否可以替换 InstallExecuteSequence 自定义操作的条件?

【问题讨论】:

  • 软件包包含导致升级问题的错误并不少见。 Here are some approaches for dealing with installed packages that cause upgrade or uninstall problems。一种选择是使用小升级。这些minor upgrades have many limiations,但它们允许您“就地”升级产品,而不是卸载和重新安装(这是主要升级所做的并在此过程中引发问题)。
  • 谢谢,我会调查的。
  • 这些方法适用于无法卸载的包,但使用小升级通常可以修复已安装包的卸载顺序中的任何错误,这些错误在卸载或升级时出现并导致进程失败。实际上,次要升级会在调用或调用卸载序列之前“修复”卸载序列。在the list 中,只有方法 2 与您相关。
  • 我编辑了这个问题,并添加了更多关于我想要实现的目标的问题。
  • 是的,您几乎可以更改已安装包中的任何内容。目前我能找到的最简单的小升级示例可能是this one。打开 CreatePatch.cmd 并更新 WiX 二进制文件的路径(此时可能以 v3.11 结束)。请记住,小升级有many limitations。保持简单,只更改解决问题所需的内容。

标签: wix windows-installer


【解决方案1】:

是的。补丁包括修改包的转换。事实上,补丁总是会修改包中的表,即使它们不会更改有效负载文件的内容。

【讨论】:

  • 我对我要达到的目标的问题添加了解释。这可能与补丁有关吗?
【解决方案2】:

上面的 cmets 变得太乱了。这是作为常规答案的快速重写:


次要升级:次要升级可以在调用卸载或升级序列之前更改已安装 MSI 软件包中的大部分内容。因此,它可以修复与重大升级或卸载失败等相关的问题(您可以在调用之前修复卸载顺序)。

示例Here is the simplest sample of a minor upgrade我现在可以找到 (another sample from FireGiant's documentation)。

  • 对于简单示例:打开 CreatePatch.cmd 并更新 WiX 二进制文件的路径(此时可能以 v3.11 结尾:set wixDir="C:\Program Files (x86)\WiX Toolset v3.11\bin\")。

  • 请记住a minor upgrade has many limitations。保持简单,只更改解决问题所需的内容。

小升级详情The table at the bottom here 显示小升级需要更改的内容。本质上是包代码产品版本 + 加上您想要实施的任何更改。上面的链接指向 InstallShield 的文档(一个不同的 MSI 工具),但这是一个通用的 MSI 技术概念 - 它不是特定于供应商的。

您可以将次要升级作为新的 MSI 或补丁文件 (*.msp) 提供。对于 MSI,您需要使用特殊的命令行来安装。像这样的:

msiexec.exe /i MySetup.msi REINSTALLMODE=vomus REINSTALL=ALL

v 告诉 msiexec 重新缓存 MSI,以便它“就地”更新现有的缓存。


链接:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多