Я использую 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
снимок экрана системных переменных, показывающий, что он установлен неправильно
Буду очень признателен за понимание того, почему имя файла усекается.