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

Installation 如何添加环境变量,但如果WiX中已经存在环境变量,如何不删除它?,installation,wix,windows-installer,uninstallation,Installation,Wix,Windows Installer,Uninstallation,现在,我可以在安装时使用WiX中的环境标记添加环境变量。下面是一个例子: <Environment Id="LibPath" Action="set" Name="PATH" Part="last" Separator=";" System="yes" Value="[INSTALLDIR]" /> 但是,有时,客

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

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

但是,有时,客户机上已经安装了环境变量。在这种情况下,卸载时必须保留该环境变量。但是,如果他们还没有,我们确实希望删除它。看了这本书之后,我不确定这是否可行。看起来我有两个选择:

  • 每次卸载时,将环境变量保留在名称空间中
  • 卸载变量,不管怎样,即使我没有安装它

  • 是这样,还是我遗漏了什么?我一直在寻找,但似乎你要么选择污染,要么总是清除。两者似乎都不是正确的解决方案。

    我还没有尝试过这个方法,但我认为它应该能起作用:

  • 创建属性(ENVEXISTS)并将其设置为0
  • 检测env变量是否存在,并将property设置为1
  • 使用属性的值作为条件执行set env变量两次-一次作为卸载时删除(如果不存在),一次作为卸载时保留(如果存在)

  • 对不起,我的wix有点模糊;我该如何做一个有条件的?这不就是在.msi的编译时做有条件的吗?太棒了,我来试一试!