Установка ярлыка 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%,

Другие вопросы по тегам