przykładowy kod jak obiecał. To powinno wystarczyć, aby zacząć.
Do utworzenia pliku InnoSetup iss zawierającego numer wersji można użyć następującego skryptu JavaScript. Rzeczywisty plik będzie wyglądać następująco:
VersionInfoVersion=1.2.3.12345
AppVerName=My App v1.2.3.12345
Głównym skrypt Inno Setup będzie zawierać ten plik poprzez dodanie następujących do końca [Setup] sekcja:
[Setup]
AppId={{...}}
...
#include "version.iss"
Oto JavaScript (byłoby to zapisane w osobnym pliku - version.js na przykład):
createInnoSetupIncludeFile("My App", 1, 2, 3, 12345, "version.iss");
function createInnoSetupIncludeFile(appName, verMajor, verMinor, verSubMinor, buildNumber, headerFileName)
{
var versionString = verMajor + "." + verMinor + "." + verSubMinor + "." + buildNumber;
var fileSystemObject = WScript.CreateObject("Scripting.FileSystemObject");
var fileObject = fileSystemObject.CreateTextFile(headerFileName, true);
fileObject.WriteLine("VersionInfoVersion=" + versionString);
fileObject.WriteLine("AppVerName=" + appName + " v" + versionString);
fileObject.Close();
fileObject = null;
fileSystemObject = null;
}
można dostosować ten skrypt, aby utworzyć plik version.iss ja n inny folder.
Na koniec musisz wykonać JavaScript - najlepsze miejsce będzie w Pre-Build Event twojego projektu Visual Studio. Dodaj:
cscript version.js //NoLogo
Musisz to zmienić, aby również skompilować plik kompatybilny z Wix. Kiedyś to robiłem, ale rzuciłem Wix na rzecz Inno Setup, więc nie mam tego kodu pod ręką. Istnieje mechanizm do skryptu Wix, więc powinien wskazać ci właściwy kierunek - koncepcja jest taka sama - wygeneruj plik tekstowy, który definiuje numer wersji, a następnie ją zawrzyj.
Mam nadzieję, że to pomoże.
Wow! To genialne! +1. Zirytował fakt, że ISPP nie jest częścią domyślnego pakietu. – Rob
+1 Możesz wyciągnąć wszystkie wartości versioninfo ze swojego exe. Używam Inno (i ISTool) od kilku lat dla wszystkich moich produktów i myślę, że jest raczej ... piękny. – Spike0xff
Od 5.4.1 (2011-02-09), to jest ... –