如何更改NSIS快捷方式的启动路径?

23

我有一个 NSIS 安装程序脚本,可以在桌面和开始菜单文件夹中放置快捷方式,但每个快捷方式的启动路径都是错误的,因此该应用程序会将数据文件保存到快捷方式所在的位置。

是否有一种简单的方法可以更改启动路径?文档对此问题的说明不太有帮助。

Section "Desktop Shortcut" SHORTCUT
    SetOutPath "$DESKTOP"
    CreateShortcut "${FULL_APP_NAME}.lnk" "$INSTDIR\${APP_NAME}.exe" "" "$ICONDIR\${DESKICO}"
SectionEnd
3个回答

24
请查看NSIS文档的以下页面:

http://nsis.sourceforge.net/Docs/Chapter4.html#4.9.3.4

请特别注意以下这句话:
“$OUTDIR 用于工作目录。您可以在创建快捷方式之前使用 SetOutPath 来更改它。”
换句话说,您需要使用“SetOutPath”来指定快捷方式的“起始位置”文件夹。这就是为什么 Zerofiz 发布的解决方案有效的原因。
Section "Desktop Shortcut" SHORTCUT
    SetOutPath "$INSTDIR"
    CreateShortcut "$DESKTOP\${FULL_APP_NAME}.lnk" "$INSTDIR\${APP_NAME}.exe" "" "$ICONDIR\${DESKICO}"
SectionEnd

这会导致快捷方式在$INSTDIR中启动。

16

试试这个:

Section "Desktop Shortcut" SHORTCUT
     SetOutPath "$INSTDIR"
     CreateShortcut "$DESKTOP\${FULL_APP_NAME}.lnk" "$INSTDIR\${APP_NAME}.exe" "" "$ICONDIR\${DESKICO}"
SectionEnd

0
注意:如果您只想让“开始于:”字段为空,您也可以使用链接到文档中提到的/NoWorkingDir标志。http://nsis.sourceforge.net/Docs/Chapter4.html#4.9.3.4
Section "Desktop Shortcut" SHORTCUT
    SetOutPath "$INSTDIR"
    CreateShortcut /NoWorkingDir "$DESKTOP\${FULL_APP_NAME}.lnk" "$INSTDIR\${APP_NAME}.exe" "" "$ICONDIR\${DESKICO}"
SectionEnd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接