NSIS проблема с доступом к данным - PullRequest
1 голос
/ 22 ноября 2010

Я постараюсь сделать себя максимально понятным.

Я сделал программу установки с NSIS.Значок был создан на рабочем столе, и когда я дважды щелкаю по нему, приложение хорошо запускается.Однако в каталоге установки у меня есть другие каталоги (например, «css», который содержит «style.css»), и кажется, что программа ищет мой файл css в каталоге ярлыка (-> рабочий стол).

Как я могу заставить программу выглядеть в каталоге установки, а не на рабочем столе?

Спасибо за ваши ответы.


Вот код, который я использовал:

Section "Shortcuts"
SectionIn 2 
SetOutPath "$SMPROGRAMS\MyApp"
CreateShortCut "$SMPROGRAMS\MyApp\MyApp.lnk" "$INSTDIR\MyApp.exe"
SetOutPath "$INSTDIR"
CreateShortCut "$DESKTOP\MyApp.lnk" "$INSTDIR\MyApp.exe"
SectionEnd 

Если я изменил outpath (строка 3) на «$ INSTDIR», ярлык не будет создан вообще.Если я использую этот код, ярлык будет создан, но для рабочего стола будет задан параметр «start in».

Ответы [ 2 ]

2 голосов
/ 22 ноября 2010

Проблема в этом случае заключается в том, что ваше приложение использует относительные пути без их определения;простое решение состоит в том, чтобы ярлык указывал рабочий каталог: (кажется странным, что SetOutPath изменяет CreateShortCut, но руководство говорит, что это так)все пути абсолютны;вы пометили его как qt, поэтому я предполагаю, что вы используете Qt и C ++.Ищите «абсолютный путь qt» и тому подобное - например, Архив Qt-интереса - Как получить абсолютный путь приложения?

0 голосов
/ 22 ноября 2010
Section "Shortcuts"
SectionIn 2 
CreateDirectory "$SMPROGRAMS\MyApp" #CreateShortCut does not create directories
SetOutPath "INSTDIR"
CreateShortCut "$SMPROGRAMS\MyApp\MyApp.lnk" "$INSTDIR\MyApp.exe"
SetOutPath "$INSTDIR"
CreateShortCut "$DESKTOP\MyApp.lnk" "$INSTDIR\MyApp.exe"
SectionEnd 
...