Установка ярлыка Wix с помощью переменной среды рабочей директории
Я пытаюсь создать ярлык в WIX со следующим WorkingDirectory:
<Shortcut Id="PowerShellShortcut" Name="$(var.PRODUCTNAME) Powershell Prompt" Description="$(var.PRODUCTNAME) Powershell Prompt" WorkingDirectory="%HOMEDRIVE%%HOMEPATH%" Target="[POWERSHELLEXE]" Arguments='-noexit -command "Import-Module [APPLICATIONFOLDER]Binaries\MA.dll | Out-Null"' />
Когда я пытаюсь собрать, я получаю следующую ошибку:
Ошибка 1 Значение атрибута Shortcut/@WorkingDirectory, "%HOMEDRIVE%%HOMEPATH%", не является допустимым идентификатором. Идентификаторы могут содержать символы ASCII AZ, az, цифры, подчеркивания (_) или точки (.). Каждый идентификатор должен начинаться либо с буквы, либо с подчеркивания.
Есть ли обходной путь для установки литеральной строки "%HOMEDRIVE%%HOMEPATH%" в качестве рабочего каталога ярлыка?
2 ответа
Вы не можете использовать переменные среды, такие как %HOMEDRIVE%
в .wxs
файлы. Вместо %HOMEDRIVE%%HOMEPATH%
попробуйте использовать $(env.HOMEDRIVE)$(env.HOMEPATH)
Согласно документации в таблице ярлыков, рабочий каталог (WkDir) хранит имя свойства, значение которого вы хотите сохранить в ярлыке. Это свойство может быть DirProperty (то есть также ссылкой на таблицу каталогов), или оно может просто содержать жестко закодированную строку. Если вы хотите, чтобы последний ярлык содержал буквальный текст %HOMEDRIVE%%HOMEPATH%
, затем установите ваш рабочий каталог на что-то вроде WKDIR_HOME
это имя свойства, которое вы установили %HOMEDRIVE%%HOMEPATH%
,