【问题标题】:Can't prevent downgrade无法阻止降级
【发布时间】:2015-05-27 12:37:03
【问题描述】:

我已尝试按照以下要求进行安装。
1. 应对重大升级,防止降级。
2. 应处理较小的升级/更新并防止降级。
3.应该是可修补的,防止降级。
当然,所有这些都在同一个包中

到目前为止,我已经遇到了一个又一个的障碍。
FindrelatedProducts 不会在维护模式下运行,所以我无法真正检查安装有 upgradeversion 标签的其他产品。 不能有 ProductCode="*",因为 pyro 不喜欢创建补丁。
我还注意到,根据 https://www.firegiant.com/wix/tutorial/upgrades-and-modularization/ 构建的防止降级并不能真正从命令行使用开关运行安装 REINSTALL=ALL 和 REINSTALLMODE=vomus。似乎开关忽略了升级版本设置。

我很确定我错过了什么,但我看不到它。有没有人有关于如何做到这一点的任何提示?

我的升级元素看起来像

<Upgrade Id="put-guid-here"> 
  <UpgradeVersion OnlyDetect="yes" Property="SELFFOUND" Minimum="6.1.15119" 
                  IncludeMinimum ="yes" Maximum="6.1.15124" IncludeMaximum="yes" />
  <UpgradeVersion OnlyDetect="yes" Property="NEWERFOUND" Minimum="6.1.15124" 
                  IncludeMinimum="no" />
</Upgrade>

【问题讨论】:

  • @mcy 现在我很困惑,因为 RemoveExistingProducts 仅在第一次安装时运行。这让我相信我需要删除静态 ProductCode 在这种情况下,patchbuild (pyro) 不会接受。还是我看错了?
  • 我的升级元素看起来像&lt;Upgrade Id="aaab4b63-729f-45b4-9457-fb70c2e4bcda"&gt; &lt;UpgradeVersion OnlyDetect="yes" Property="SELFFOUND" Minimum="6.1.15119" IncludeMinimum ="yes" Maximum="6.1.15124" IncludeMaximum="yes" /&gt; &lt;UpgradeVersion OnlyDetect="yes" Property="NEWERFOUND" Minimum="6.1.15124" IncludeMinimum="no" /&gt; &lt;/Upgrade&gt;
  • 我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
  • @John Saunders 谢谢,我会记住这一点。这是我的第一篇文章。

标签: wix windows-installer patch major-upgrade


【解决方案1】:

重大升级需要更改 ProductCode(和其他一些内容)才能安装新版本,并且您可以防止降级,因为它内置在 Windows Installer 中。

对已安装产品的次要升级需要具有相同 ProductCode 的 MSI,因为您要针对已安装的产品进行维护(而不是安装全新的产品),并且它们需要在命令行上设置 REINSTALL 和 REINSTALLMODE .此类更新没有使用任何主要的升级逻辑,主要是更新文件,是补丁的替代品。

这意味着没有人可以通过运行次要升级来进行降级,除非您专门使用相同的 ProductCode(与您已经发布的产品代码相同)和较低的 ProductVersion 构建一个 MSI 文件,然后告诉人们安装它与重新安装和重新安装模式。你真的要这么做吗?从你的问题看来不是这样。另外,请注意,如果您发布的唯一 MSI 文件都有不同的 ProductCode,那么您将永远不会遇到问题。

因此,您需要做的只是进行重大升级,也许您会偶尔构建补丁。再说一次,您无需担心小升级,因为那里永远不会有任何 MSI 文件可用于此。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-18
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多