4

在 WIX 中,我希望一个功能可以正常安装和卸载,但在修复过程中不要碰。

我找不到允许我这样做的条件。我的尝试失败了:该功能在修复时重新安装(我不需要)或未卸载。

这是我上次尝试的示例:

<Feature Id="aFeature" Title="A Features" Level="1">
  <ComponentRef Id="aComponent" />
  <Condition Level="0">
    <![CDATA[WixUI_InstallMode="Repair"]]>
  </Condition>
</Feature>

在修复期间卸载但不重新安装的正确条件是什么?或者我做错了什么?

4

2 回答 2

3

这对我有用:

<Feature Id="aFeature" Title="A Features" Level="1">
  <ComponentRef Id="aComponent" />
  <Condition Level="0">
     <![CDATA[REINSTALL<>""]]>
  </Condition>
</Feature>

这样,在修复过程中,该功能将被忽略且不会被触及,但通常会被卸载

于 2015-03-03T20:29:34.667 回答
1

我能想到的唯一方法是为该功能中的所有组件提供一个空的 guid,这是向 Windows Installer 发出的信号,不要对它们做任何事情,例如修复它们、修补它们、卸载它们。如果产品已经发货,那就太迟了。然而,这是一个激烈的步骤,通常只有当您想要安装一些东西以供临时使用然后删除它们时才需要这样做。所以你在这里与框架作斗争。看起来您遇到了禁用功能修复可能会解决的问题,那么为什么不描述问题以查看是否有其他解决方案?

于 2015-03-02T18:05:59.877 回答