2009-10-02 2 views
1

В настоящее время я могу добавить переменную окружения при установке с тегом Environment в WiX. Вот пример:Как добавить переменную окружения, но не удалить ее, если она уже существует с WiX?

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

Однако иногда переменная окружения уже установлена ​​на клиенте. В этом случае эта переменная среды должна оставаться при деинсталляции. Однако, если они сделали не уже есть, мы do хотите его удалить. Посмотрев на wix documentation for Environment, я не уверен, что это возможно. Похоже, у меня есть два варианта:

  1. Оставьте переменную окружения, загрязняющую пространство имен, каждый раз при удалении.
  2. Удалите переменную, несмотря ни на что, даже если я ее не установил.

В этом случае, или я что-то упускаю? Я смотрю, но, похоже, вы либо получаете возможность загрязнять, либо удалять всегда. Не похоже на правильное решение.

ответ

2

Я не пробовал это, но я думаю, что это должно работать:

  1. создать свойство (ENVEXISTS) и установите его в 0
  2. обнаружить, если переменная окр существует и установить propetry 1
  3. сделать переменный окр набора дважды, используя в качестве условия стоимости вашего имущества - один раз, как удалить при удалении программы, если она не существовала, и когда-то, как отпуск на деинсталлировать, если он существовал
+0

к сожалению, мой Wix несколько туманно; как бы я сделал условное? –

+0

<Окружающая среда ....> должно работать нормально – Gabriel

+0

Не будет ли это делать только условие во время компиляции .msi? –

Смежные вопросы