ОБНОВЛЕНИЕ (2012-02-14): Я обнаружил, что невозможно прочитать переменные среды перед установкой * последовательностей в CustomActions.Это означает, что вы не можете прочитать переменную и отобразить ее в пользовательском интерфейсе, за исключением того, что вы программируете exe / dll, который возвращает содержимое переменной ...: (
Я создал два свойства для чтения двух пользовательских переменных среды%MY_ENV_VAR1% и% MY_ENV_VAR2%. Определение выглядит следующим образом:
<Property Id="ENV_MYENVVAR1" Value="0"/>
<Property Id="ENV_MYENVVAR2" Value="0"/>
Впоследствии я создал два пользовательских действия, выполняемых в последовательности пользовательского интерфейса после WelcomeDlg:
<CustomAction Id="GET_MYENVVAR1" Impersonate="yes" Return="check" Execute="immediate" Property="ENV_MYENVVAR1" Value="[%MY_ENV_VAR1]"/>
<CustomAction Id="GET_MYENVVAR2" Impersonate="yes" Return="check" Execute="immediate" Property="ENV_MYENVVAR2" Value="[%MY_ENV_VAR2]"/>
<InstallUISequence>
<Custom Action="GET_MYENVVAR1" After="WelcomeDlg">1</Custom>
<Custom Action="GET_MYENVVAR2" After="GET_MYENVVAR1">1</Custom>
</InstallUISequence>
Проблема IСуть в том, что переменные среды не читаются в рамках определенных пользовательских действий. Мой пользовательский интерфейс всегда отображает «0» в соответствующих текстовых полях. Вот код для двух элементов управления, которые я использую:
<Control Id="Control_EnvVar1" Property="ENV_MYENVVAR1" Type="Edit" X="35" Y="191" Width="240" Height="17"/>
<Control Id="Control_EnvVar2" Property="ENV_MYENVVAR2" Type="Edit" X="35" Y="106" Width="240" Height="17"/>
IЯ использую WiX 3.5.2519.0 и MSI 2.0 в качестве основы для моей программы установки. Установщик работает под Win 7 (x64) Professional, включая SP1, также установлены версии .NET Frameworks от 2.0 до 4.0 и версия установщика Windows 5.0.
Любая помощь будет очень признательна. Спасибо! -Moik