2011-11-30 2 views
5

Sto provando a generalizzare un file di installazione passando esternamente il numero di versione. Voglio essere in grado di fare questo:Come si compila condizionatamente uno script NSIS in base ai parametri della riga di comando?

makensis myscript.nsi parameter=value 

e poi leggere il parametro all'interno dello script, in modo che utilizzando lo stesso script che posso generare eseguibili in modo diverso di versione. Ho trovato this & this, ma sembra che siano per il passaggio dei parametri della riga di comando al setup.exe generato. È possibile, e come?

+0

Controlla questa risposta http://stackoverflow.com/a/2790515/150166 –

+1

Il link la risposta fa quello che vuoi. Non voterò per chiudere questa domanda sebbene il titolo e l'obiettivo della domanda siano molto diversi dal tuo. –

+0

@DavidHall: com'è diverso? Il nome dell'installatore è un attributo che puoi impostare solo in fase di compilazione! L'obiettivo è praticamente lo stesso ... – Anders

risposta

6

È possibile aggiungere simboli alla elenco definito a livello globale dal command line utilizzando l'opzione/D:

makensis /DMyVersion="1.0.1" install.nsi 

Poi si possono usare con il $ {} sintassi:

!ifdef MyVersion 
    StrCpy $Version "${MyInstallerName}" 
!else 
    StrCpy $Version "1.0.0" 
!endif 

anche di possibile interesse è il plugin GetVersion discusso in questa domanda SO: NSIS - put EXE version into name of installer