NSIS 快捷方式有什么问题?

What's wrong with NSIS shortcut?

应该警告,英语不是我的母语,对语法错误感到抱歉。

我用 NSIS 创建的快捷方式有问题。快捷方式的 link 导致 exe 文件,使用 json 配置,配置与 exe 在同一目录中,当我使用快捷方式时它 returns 我一个错误,它可以找不到配置,因为它正在快捷方式的目录中搜索。但是当我自己制作快捷方式时它工作正常 - 在 exe 目录中搜索配置。我需要创建快捷方式,它将使用位于 instdir 中的配置。如何正确制作?

这就是我创建快捷方式的方式:

CreateShortCut "$DESKTOP\%link_name%.lnk" \
"$INSTDIR\%SomeDir%\Application.exe" \
"" \
"C:\Users\Daniil.Bogdanov\Pic\logo.ico" 0

config 和 exe 位于 %SomeDir%

这不是最直观的事情,但 CreateShortCut 会根据当前 $OUTDIR 值设置快捷方式的工作目录。

https://nsis.sourceforge.io/Docs/Chapter4.html#createshortcut

$OUTDIR is stored as the shortcut's working directory property. You can change it by using SetOutPath before creating the shortcut

所以我猜测您的输出路径与可执行文件的位置不同。这可以通过在创建快捷方式之前使用 SetOutputPath 来解决。

SetOutPath "$INSTDIR\%SomeDir%\"
CreateShortCut "$DESKTOP\%link_name%.lnk" \
"$INSTDIR\%SomeDir%\Application.exe" \
"" \
"C:\Users\Daniil.Bogdanov\Pic\logo.ico" 0