Установка переменной среды с WiX, потеря имени файла в конце пути - PullRequest
0 голосов
/ 01 мая 2018

Я использую WiX-элемент «Environment» для установки переменной среды.

<Environment Action="create" Name="My_Certificates" System="yes" Id="certificate_env" Value="[CERT_XML_PATH]" Permanent="yes" />

CERT_XML_PATH имеет следующие значения: c: \ this \ is \ my \ path \ myfile.xml

Если этот файл действительно существует, переменная окружения установлена ​​правильно и указывает на файл. Если этот конкретный файл не существует во время установки, переменная среды создается и устанавливается, но путь усекается для удаления части myfile.xml.

Этот установщик является частью большего набора. У него есть свой отдельный MSI. Установка одного из пакетов создает этот XML-файл, но не тот, над которым я работаю. Если XML-файл был создан, все работает нормально. Но если этот установщик запускается первым, он установит переменную окружения на

Переменная среды "My_Certificates" создается, но ее значение равно:

  • C: \ это \ является \ My \ путь \

Вместо:

  • C: \ это \ это \ \ мой путь \ myfile.xml

Поиск и устранение неисправностей:

Журнал установки показывает, что свойство установлено в правильном месте.

MSI (70:80) [15: 27: 44: 988]: ИЗМЕНЕНИЕ ИМУЩЕСТВА: добавление свойства CERT_XML_PATH. Его значение 'c: \ this \ is \ my \ path \ myfile.xml'.

Затем мы видим, что установщик делает WriteEnvironmentStrings, используя правильный путь, включая файл xml.

MSI (s) (70:80) [15: 27: 50: 644]: Выполнение операции op: UpdateEnvironmentStrings (Name = My_Certificates, Значение = c: \ this \ is \ my \ path \ myfile.xml, Delimiter = [~], действие = 536870914,)

WriteEnvironmentStrings: Имя: My_Certificates, Значение: c: \ this \ is \ my \ path \ myfile.xml, действие 536870914

снимок экрана системных переменных, показывающий, что он установлен неправильно

Буду очень признателен за понимание того, почему имя файла усекается.

1 Ответ

0 голосов
/ 03 мая 2018

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

...