Ho il seguente codice di NSISNSIS CreateShortcut insiste sull'uso% Programmi% per il percorso dell'icona
Function CreateDesktopSC
;Creates Desktop Shortcut
SetShellVarContext current
SetOutPath "$DOCUMENTS\Foo\"
SetShellVarContext all
detailprint "Icon path: $INSTDIR\Bar\icon.ico"
CreateShortCut "$DESKTOP\${productName}.lnk" "$INSTDIR\Bar\binary.exe" "" "$INSTDIR\Bar\icon.ico" 0
FunctionEnd
Il log di installazione mostra il seguente (dal comando detailprint) percorso Icon: C: \ Program Files (x86) \ Bar \ icon.ico
Il collegamento è stato creato, ma con l'icona dell'eseguibile.
Se apro il file lnk o clicco destro sul collegamento e clicco su "Cambia icona ...", viene visualizzato l'errore "Impossibile trovare il file% ProgramFiles% \ Bar \ icon.ico."
Se sfoglio a% Programmi%, mi porta in c: \ Programmi, non nella versione x86 come mostrato nel comando dettagliprint. Il file dell'icona esiste, ma nella cartella x86.
Sembra che NSIS o Windows stiano sostituendo "C: \ Programmi (x86) \" con "% Programmi%", che non punta alla versione x86.
Il percorso effettivo dell'eseguibile è corretto, è solo il collegamento dell'icona che non è corretto.
Qualche idea?