У меня есть MSI-пакет, сгенерированный wix, который создает системную переменную среды, заполняя таблицу Environment
.
<Environment Id="CreateEnvVar" Name="DATADIR" Action="set"
System="yes" Part="all" Value="[DATA_DIR]" />
При установке успешно создается переменная среды на системном уровне. Это было подтверждено просмотром диалога Environment Variables
из System Properties
Однако, вошедший в данный момент пользователь не имеет доступа к вновь созданным переменным окружения, пока машина не будет перезагружена (я предполагаю, что выход из системы и последующий вход также будут работать. Просто еще не пробовал). Выполнение только что установленного приложения завершается сбоем, поскольку у него нет доступа к переменной DATADIR
.
Кроме того, при открытии командной строки после завершения установки переменная DATADIR
не отображается при выполнении команды set
.
Я понимаю, что процесс, запущенный до выполнения MSI, не получит новые переменные. Однако, почему процесс, запущенный после добавления переменных среды, не получает новые?
К вашему сведению, я устанавливаю на Windows Server 2003 и вошел через удаленный рабочий стол с пользователем из группы Administrators
.