【问题标题】:How to Create a Patch in WiX with the different product codes如何使用不同的产品代码在 WiX 中创建补丁
【发布时间】:2017-11-08 15:46:34
【问题描述】:

我使用Purely WiX approach to making patches 并试图让一个 MSP 为 2 个不同的 MSI 工作。 我有 v1.1 MSI 和 v1.2 MSI,并计划使用 v1.2 MSI 创建 MSP,以便 MSP 可用于 v1.1 和 v1.2。

我设置了Validate/@ProductId='no',正如它的描述所说:

要求安装的 ProductCode 与目标 ProductCode 匹配 用于创建变换。默认为“是”。

但是,它仅适用于 v1.2。到目前为止,我能够工作的唯一方法是添加 2 TargetProductCode/@Id,如下所示。 这是Validate/@ProductId 的错误吗?或者这是正确的做法吗?

<Media Id="5000" Cabinet="RTM.cab" >
    <PatchBaseline Id="RTM" >
        <Validate ProductId='no' ProductLanguage='no' ProductVersion="Update" ProductVersionOperator='LesserOrEqual' UpgradeCode='no' />
    </PatchBaseline>
</Media>

<!-- Why do I need this when Validate/@ProductId='no'? -->
<TargetProductCodes Replace='no'>
    <TargetProductCode Id='{xxx}' />
    <TargetProductCode Id='{xxx}' />
</TargetProductCodes>

<PatchFamilyRef Id="myRollup"/>

a same question,但都没有工作。

【问题讨论】:

    标签: wix windows-installer patch


    【解决方案1】:

    我遇到了同样的问题,Validate/@ProductId='no' 似乎对我没有多大帮助,除非我做错了什么。

    我发现您需要在每次更新时保持 ProductId 相同,并且仅在主要版本升级时更改它(此时没有 MSP 从 v1.x 转到 v2.0 ,这是通过 MSI 进行的升级安装)。

    然后您可以基于v1.0构建MSP并将ProductVersionOperator设置为GreaterOrEqual,或者基于v1.1构建它并将其设置为LesserOrEqual,MSP将适用于任何v1.x微星。

    【讨论】:

      猜你喜欢
      • 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
      相关资源
      最近更新 更多