如何仅在卸载时触发组件条件,而不是在升级时触发组件条件?

时间:2016-04-07 11:03:11

标签: wix windows-installer wix3.9

我想仅在卸载时删除文件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>

属性<RemoveFile ... On="uninstall" />不会对此行为进行任何更改。因此,在升级时将删除该文件。

更新<CustomAction>REMOVE=ALL AND NOT UPGRADINGPRODUCTCODE</CustomAction>中,条件在更新或卸载时正常工作,但相同的条件在组件条件中无法正常工作:<Condition>REMOVE=ALL AND NOT UPGRADINGPRODUCTCODE</Condition>。我不想将<CustomAction>结合使用程序集或命令行语句作为不稳定的解决方法。我没有使用此处所述的<CustomAction>请求解决方案:How to add a WiX custom action that happens only on uninstall (via MSI)? 我希望用我在问题中描述的组件条件来处理它。

1 个答案:

答案 0 :(得分:-1)

制作自定义操作并指定以下条件:enter image description here