维克斯。如何在修复期间不重新安装功能?

WIX. How to not reinstall a feature during repair?

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

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

这是我上次尝试的示例:

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

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

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

这对我有用:

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

这种方式在修复过程中该功能被忽略且未被触及,但通常被卸载