2011-11-30 7 views
5

Próbuję uogólnić plik instalacyjny, przekazując zewnętrznie numer wersji. Chcę być w stanie to zrobić:Jak warunkowo skompilować skrypt NSIS na podstawie parametrów wiersza poleceń?

makensis myscript.nsi parameter=value 

a następnie odczytać parametr w skrypcie, tak że przy użyciu tego samego skryptu można generować inaczej wersjonowanych wykonywalne. Znalazłem this & this, ale wydają się one służyć do przekazywania parametrów wiersza polecenia do wygenerowanego pliku setup.exe. Czy to możliwe i jak?

+0

Sprawdź tę odpowiedź http://stackoverflow.com/a/2790515/150166 –

+1

odpowiedź robi to, co chcesz. Nie zamierzam głosować, aby zamknąć to pytanie, ponieważ tytuł i cel pytania są bardzo różne od twojego. –

+0

@DavidHall: Jak jest inaczej? Nazwa instalatora jest atrybutem, który możesz ustawić tylko podczas kompilacji! Cel jest prawie taki sam ... – Anders

Odpowiedz

6

Możesz dodać symbole do zdefiniowanego globalnie listy z command line za pomocą przełącznika/d:

makensis /DMyVersion="1.0.1" install.nsi 

Następnie można z nich korzystać za pomocą $ {} składnia:

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

Również możliwe zainteresowanie to wtyczka GetVersion opisana w tym zadaniu: NSIS - put EXE version into name of installer