Si l'avertissement, cet anglais n'est pas mon natif, désolé pour les fautes de grammaire.

J'ai un problème avec le raccourci que je crée avec NSIS. Le lien du raccourci mène au fichier exe, qui utilise une configuration json, la configuration est dans le même répertoire que exe, et lorsque j'utilise le raccourci, il me renvoie une erreur, qu'il ne peut pas trouver la configuration, car il recherche dans le raccourci annuaire. Mais lorsque je crée le raccourci moi-même, cela fonctionne correctement - en recherchant la configuration dans le répertoire de l'exe. Je dois créer le raccourci, qui utilisera une configuration qui se trouve dans instdir. Comment le faire correctement ?

C'est comme ça que je crée le raccourci:

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

La configuration et l'exe se trouvent dans %SomeDir%

0
Daniel Bogdanov 7 oct. 2020 à 10:59

1 réponse

Meilleure réponse

Ce n'est pas la chose la plus intuitive, mais CreateShortCut définit le répertoire de travail de votre raccourci en fonction de la valeur $OUTDIR actuelle.

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

$OUTDIR est stocké en tant que propriété du répertoire de travail du raccourci. Vous pouvez le modifier en utilisant SetOutPath avant de créer le raccourci

Je suppose donc que votre chemin de sortie n'est pas le même que l'emplacement de votre exécutable. Cela peut être résolu en utilisant SetOutputPath juste avant de créer votre raccourci.

SetOutPath "$INSTDIR\%SomeDir%\"
CreateShortCut "$DESKTOP\%link_name%.lnk" \
"$INSTDIR\%SomeDir%\Application.exe" \
"" \
"C:\Users\Daniil.Bogdanov\Pic\logo.ico" 0
0
Karl-Johan Sjögren 7 oct. 2020 à 08:14