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

时间:2015-03-02 17:36:38

标签: wix conditional-statements reinstall

在WIX中我喜欢正常安装和卸载的功能,但在维修期间不要触摸。

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

这是我上次尝试的一个示例:

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

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

2 个答案:

答案 0 :(得分:3)

这对我有用:

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

这种方式在修复期间,功能会被忽略而不会被触及,但通常会被卸载

答案 1 :(得分:1)

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