почему NSIS устанавливает целевое значение по умолчанию INSTDIR? - PullRequest
0 голосов
/ 27 января 2012

Я пытаюсь создать exe-инсталлятор для 32-битного приложения, который также создал бы ярлык для моего приложения.Я использую NSIS для сборки установщика, и я успешен в сборке установщика.Когда я запускаю .exe в 64-битной операционной системе Windows, он создает необходимые папки, обновляет реестр и создает ярлык на рабочем столе.Однако, когда я проверяю свойства ярлыка на созданном рабочем столе, параметр «запуск» является правильным.Однако целевой параметр неверен.т.е. я использую:

создает ярлык "$ DESKTOP \ shortcut.lnk" "$ INSTDIR \ bin \ app.exe" ""

, где INSTDIR = программные файлы

Start-Параметр in правильно установлен в: C: \ program files (x86) .... Я ожидал, что цель будет такой же.

Но цель установлена ​​в: C: \ program files ....

Я что-то здесь упускаю?

1 Ответ

1 голос
/ 27 января 2012

MessageBox $ INSTDIR перед созданием ярлыка, убедитесь, что он C:\program files(x86)\...

Вы вызываете DisableX64FSRedirection (x64.nsh)?

Приходит начальный / рабочий каталогот последнего вызова SetOutPath.

Я думаю, что NSIS передает строки, почти не тронутые оболочкой, вы можете использовать сборку журналирования , чтобы увидеть строку до того, как она будет передана в IShellLink :: SetPath

...