【问题标题】:How can I trigger a component condition only on uninstall, but not on an upgrade? [duplicate]如何仅在卸载时触发组件条件,而不是在升级时触发? [复制]
【发布时间】:2016-04-08 14:09:23
【问题描述】:

我只想在卸载时删除文件File.txt,而不是在升级时。我们正在使用<MajorUpgrade ...> 元素进行升级。

当我们使用以下组件时,每次都会删除文件,升级时也是如此:

<Component Id="RemoveFileComponent" Transitive="yes"  Directory="BIN" Guid="MY-GUID-HERE">
  <Condition>REMOVE=ALL AND NOT UPGRADINGPRODUCTCODE</Condition>
  <RemoveFile Id="RemoveTextFile" Name="File.txt" Directory="BIN" On="uninstall" />
</Component>

&lt;RemoveFile ... On="uninstall" /&gt; 属性不会改变这种行为。升级时该文件将因此被删除。

更新:&lt;CustomAction&gt;REMOVE=ALL AND NOT UPGRADINGPRODUCTCODE&lt;/CustomAction&gt; 中,条件在更新或卸载时可以正常工作,但相同的条件在组件条件下无法正常工作:&lt;Condition&gt;REMOVE=ALL AND NOT UPGRADINGPRODUCTCODE&lt;/Condition&gt;。我不感兴趣将&lt;CustomAction&gt; 与程序集或命令行语句结合使用作为不稳定的解决方法。我不要求使用此处描述的&lt;CustomAction&gt; 的解决方案:How to add a WiX custom action that happens only on uninstall (via MSI)? 我想在我的问题中描述的组件条件下使用它。

【问题讨论】:

  • 请看@我的问题。我不想使用任何自定义操作。我想使用一个组件。这不是重复的。
  • 请注意,您可以@ping 黄金徽章关闭器,例如本例中的@Yan
  • 我认为没有实际区别。您问题的重点是如何设置适当的条件。此外,&lt;RemoveFile&gt; 也是一个自定义操作。
  • 没有。看@我的更新。

标签: wix windows-installer wix3.9


【解决方案1】:

进行自定义操作并指定以下条件:

【讨论】:

  • 看@我的问题:我不想使用CustomAction。我想使用&lt;RemoveFile /&gt;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-24
  • 2021-07-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多