Получить переменную среды в свойство WIX

Просто для удовольствия вы можете использовать прокси магию:)

const template = {
  a: '',
  b: ''
}

const data = {
  a: 'test',
  b: 'test',
  c: 'test'
}

const result = { ...new Proxy(data, {
    ownKeys: () => Object.keys(template)
  })
}

console.log(result)

16
задан Avada Kedavra 8 August 2013 в 21:15
поделиться

2 ответа

Вы можете использовать переменные среды во время установки, но для этого требуется использование настраиваемого действия. Вам нужно будет установить свойство UserFolder с помощью настраиваемого действия Type 51 Custom Action , а не устанавливать свойство во время сборки. Формат [% ENVVARNAME] используется для использования переменной среды, но имя переменной среды чувствительно к регистру.

Пример WiX настраиваемого действия, которое устанавливает свойство:

<CustomAction Id="SetUserFolder" Property="UserFolder" Value="[%USERPROFILE]EdwardsApp\MyFolder" />

Подробнее о настраиваемых действиях в WiX можно прочитать здесь:

http://blogs.technet.com/b/alexshev/archive/2008/ 21.02 / from-msi-to-wix-part-5-custom-actions.aspx

11
ответ дан 30 November 2019 в 16:49
поделиться

, поскольку я пока не могу добавить комментарий, что касается ответа @ demp, мне пришлось сделать это, чтобы получить условие для оценки когда-нибудь во время инициализации, чтобы значение могло отображаться в диалоговом окне пользовательского интерфейса:

    <SetProperty Id="MY_PROPERTY" Value="[%USERDOMAIN]" After="LaunchConditions" Sequence="first"  />

Я полагаю , что Before="InstallInitialize" происходит непосредственно перед самой установкой (т. Е. Копирование файлов и еще много чего), а не на этапе инициализации самого установщика.

4
ответ дан 30 November 2019 в 16:49
поделиться