Как добавить переменную среды, но не удалить ее, если она уже существовала в WiX? - PullRequest
1 голос
/ 02 октября 2009

Прямо сейчас я могу добавить переменную окружения при установке с тегом Environment в WiX. Вот пример:

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

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

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

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

1 Ответ

2 голосов
/ 09 октября 2009

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

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