NSIS快捷方式有什么问题?

问题描述

应该警告,英语不是我的母语,对于语法错误,我们深表歉意。

我对使用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