问题描述
应该警告,英语不是我的母语,对于语法错误,我们深表歉意。
我对使用NSIS创建的快捷方式有疑问。快捷方式的链接指向exe文件,该文件使用json配置,config与exe位于同一目录中,当我使用快捷方式时,它返回一个错误,提示找不到该配置,导致它在快捷方式的目录。但是当我自己制作快捷方式时,它可以正常工作-在exe目录中搜索配置。我需要创建快捷方式,该快捷方式将使用instdir中的配置。如何正确制作?
这就是我创建快捷方式的方式:
CreateShortCut "$DESKTOP\%link_name%.lnk" \
"$INSTDIR\%someDir%\Application.exe" \
"" \
"C:\Users\Daniil.Bogdanov\Pic\logo.ico" 0
配置和exe位于%SomeDir%
解决方法
这不是最直观的方法,但是CreateShortCut会根据当前的$OUTDIR
值为您的快捷方式设置工作目录。
https://nsis.sourceforge.io/Docs/Chapter4.html#createshortcut
$ OUTDIR存储为快捷方式的工作目录属性。您可以在创建快捷方式之前使用SetOutPath对其进行更改
因此,我猜测您的输出路径与可执行文件的位置不同。可以在创建快捷方式之前使用SetOutputPath
来纠正此问题。
SetOutPath "$INSTDIR\%SomeDir%\"
CreateShortCut "$DESKTOP\%link_name%.lnk" \
"$INSTDIR\%SomeDir%\Application.exe" \
"" \
"C:\Users\Daniil.Bogdanov\Pic\logo.ico" 0