Mon programme d'installation du programme est exécuté avec NSIS mais l'option/D ne semble pas fonctionner (ou mieux remplacée à l'intérieur). via la ligne de commande je déclenche:Dépassement du chemin du programme d'installation silencieux de NSIS
installer.exe /S /D=C:\Users\Public\installDir
Code NSIS est:
InstallDir "C:\Users\Public\${VERSIONSTR}"
Function xxxx
${If} $MultiUser.InstallMode == "AllUsers"
StrCpy $INSTDIR "C:\Users\Public\Dir1"
${EndIf}
IfSilent 0 +20
StrCpy $INSTDIR "C:\Userdata\Dir2"
FunctionEnd
Le dossier d'installation utilisé est "C: \ Users \ Public \ Dir2". Même si je commente le bloc IfSilent, le dossier installtion sera "C: \ Users \ Public \ Dir1" mais jamais celui qui sera passé par la ligne de commande. Qu'est-ce qui ne va pas dans mon script?
méfiez-vous de votre 'IfSilent 0 + 20': il devrait être' + 2', pas '+ 20' – Seki
êtes-vous sûr que vous passez dans votre fonction xxxx et/ou que le' $ INSTDIR' est pas dépassé par la suite? – Seki
Oui, je passe à l'intérieur de cette fonction puisque le chemin est défini en fonction de ce qu'il est écrit à l'intérieur. Je ne vois pas non plus quelque part où il est possible de l'ignorer, mais cela pourrait être mon disparu. Qu'est-ce que je dois rechercher? – user2435588