2016-04-06 12 views
1

Ich möchte, dass mein Inno-Setup-Skript über die Befehlszeile erstellt wird, und ich möchte die Produktversionsnummer als Parameter übergeben. Ich versuche es so zu implementieren:Übergeben der Versionsnummer an den Inno-Setup-Compiler

Der Compiler informiert mich jedoch, dass dies für diese Richtlinie ungültig ist. Ich habe this Post auf, wie in benutzerdefinierten Parametern von der Kommandozeile übergeben und übernehmen sollte ich nur in der Lage sein, in wie etwas passieren:

compil32 /cc "c:\isetup\samples\my script.iss" /version=1.0.0.0 

Ich habe auch den Vorschlag von this post versucht und versucht, die folgenden Aktionen ausführen:

#define PathToMyBinary "C:\bin\x64\Release" 
#define ApplicationVersion GetFileVersion('#PathToMyBinary\MyBinary.dll') 

VersionInfoVersion={#ApplicationVersion} 

Aber es scheint nichts zurückzugeben. Beide Ansätze scheinen für mich gültig zu sein, also hoffe ich, dass jemand erklären kann, wo ich falsch liege.

Antwort

3

Angenommen, Sie die Version über einen Pre-Prozessor Variable wie definieren:

[Setup] 
VersionInfoVersion={#ApplicationVersion} 

So stellen Sie die Version auf einer Befehlszeile, müssen Sie die ISCC.exe command-line compiler und seine /D switch verwenden:

ISCC.exe Example1.iss /DApplicationVersion=1.2.3.4 

Um die Version von einer Binärdatei zu lesen, verwenden Sie korrekt die GetFileVersion pre-processor function.

Aber Ihre Syntax zum Erstellen des Pfades ist falsch.
Eine korrekte Syntax ist PathToMyBinary + '\MyBinary.dll', wie:

#define PathToMyBinary "C:\bin\x64\Release" 
#define ApplicationVersion GetFileVersion(PathToMyBinary + '\MyBinary.dll') 

Siehe Inno Setup Preprocessor: Expression Syntax.

+0

Ich stelle jetzt die Version mit der Pre-Prozessor-Funktion GetFileVersion und es funktioniert jetzt, dass ich die richtige Syntax verwenden, danke. – JNH