如何添加环境变量,但如果已经存在WiX,则不删除它?

时间:2009-10-02 00:45:13

标签: installer wix windows-installer uninstaller

现在,我可以使用WiX中的Environment标记在安装时添加环境变量。这是一个例子:

<Environment Id="LibPath" 
             Action="set" 
             Name="PATH" 
             Part="last"
             Separator=";" 
             System="yes" 
             Value="[INSTALLDIR]" />

但是,有时,环境变量已经安装在客户端上。在这种情况下,卸载时必须保留该环境变量。但是,如果他们已经已经拥有它,我们想要删除它。在查看wix documentation for Environment之后,我不确定这是可能的。看起来我有两个选择:

  1. 在卸载时,每次都要保护环境变量污染名称空间。
  2. 无论如何都卸载变量,即使我没有安装它。
  3. 是这样的,还是我错过了什么?我一直在寻找,但似乎你要么选择污染,要么永远删除。似乎都不是正确的解决方案。

1 个答案:

答案 0 :(得分:2)

我没有尝试过,但我认为它应该有效:

  1. 创建一个属性(ENVEXISTS)并将其设置为0
  2. 检测env变量是否存在并将您的propetry设置为1
  3. 使用作为条件的属性值设置env变量两次 - 一旦在卸载时删除,如果它不存在,一次在卸载时离开(如果存在)