gpt4 book ai didi

WIX:仅防止更新某些旧版本

转载 作者:行者123 更新时间:2023-12-05 03:45:30 24 4
gpt4 key购买 nike

我们有一些产品使用 WIX 作为安装程序技术。安装程序中的升级处理由 MajorUpgrade 元素

处理
<Wix>
<Product Id="..." Name="..." Language="..."
Version="..." Manufacturer="..."
UpgradeCode="...">
...

<MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" AllowSameVersionUpgrades="yes" />
</Product>
</Wix>

如您所见,我们支持从所有旧版本升级到现在,但是我们必须稍微更改一下,以便只能升级比特定版本新的版本,而旧版本会收到错误消息并且升级失败.

根据我的研究,这应该可以通过 Upgrade 元素实现(如 https://www.firegiant.com/wix/tutorial/upgrades-and-modularization/checking-for-oldies/ 中所述)

我现在的问题:

  • 是否可以/建议混合使用 MajorUpgradeUpgrade 元素?
  • 有没有更好的方法来实现这一点?

更新

感谢回复和解答,我使用的解决方案如下:

<Wix>
<Product Id="..." Name="..." Language="..."
Version="..." Manufacturer="..."
UpgradeCode="My_upgrade_code">
...

<InstallExecuteSequence>
...
<Custom Action='UpdateFromVersionNotSupported' After='FindRelatedProducts'>UNSUPPORTEDUPDATEVERSIONFOUND</Custom>
...
</InstallExecuteSequence>
<MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" AllowSameVersionUpgrades="yes" />

<Upgrade Id='My_upgrade_code'>
<UpgradeVersion OnlyDetect='yes' Property='UNSUPPORTEDUPDATEVERSIONFOUND' Maximum='Oldes_version_where_update_is_allowed' IncludeMaximum='no' />
</Upgrade>

<CustomAction Id='UpdateFromVersionNotSupported' Error='Updates are only supported from version ?? or later' />

</Product>
</Wix>

最佳答案

应该有几种方法:

  1. New UpgradeCode:更改升级代码会解耦旧版本和新版本吗?您可以将两个升级代码都添加到升级表中并以不同方式处理它们。请参见下图和 this answer :

    Upgrade code

  2. 版本控制:您还可以使用版本匹配来仅升级某些 MSI 版本。 Upgrade Table documentation .换句话说,将最大和最小版本设置为每个升级表条目的目标。您可以不断添加行以不同方式处理不同的版本。像这样的东西(只是一个粗略的模型):

    InstallShield Upgrade Table

WiX Constructs:您可以混合搭配现代 WiX 便利元素 与旧的和更灵活的元素。 See this answer .

并排 MSI:请注意,如果您想 install the same MSI twice除非您努力隔离实例(COM 服务器文件关联services, etc... - 任何machine-wide干扰能力)。最糟糕的通常是通过注册表在系统范围内注册的东西(除非它具有多实例能力)。 More technical information here .虚拟化有帮助吗?有关详细信息,请参阅链接。

关于WIX:仅防止更新某些旧版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65787694/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com