Vždy když jsem sestavil novou verzi některé ze svých aplikací, bylo nutné rovněž ručně inkrementovat číslo verze v instalačním skriptu Inno Setup a případně souboru PAD - Portable Application Description (soubor XML s popisem aplikace, který obsahuje i verzi), což bylo velmi nepohodlné a občas jsem na to i zapomněl.
Napsal jsem tedy jednoduchou konzolovou aplikaci, která tyto úpravy provede automaticky předáním parametrů z příkazového řádku a lze ji jednoduše integrovat do Post-build události při kompilaci. Pro verzování používám formát n.n.* u atributu AssemblyVersion, tedy ruční zadání hlavní verze a automatickou inkrementaci čísla sestavení. Atribut AssemblyFileVersion nepoužívám vůbec, protože v něm nejde použít zástupný znak * a pokud atribut vynecháte, je do verze souboru automaticky zkopírována verze assembly (mělo by to být spíš naopak, ale z nějakého neznámého důvodu se v Redmontu rozhodli jinak).
Konzolová aplikace pro změnu verze se používá takto:
ChangeVersion /AssemblyFile="1" /SetupScriptFile="2" [|] /PADFile="3"
1 Cesta k souboru aplikace
2 Cesta k instalačnímu skriptu aplikace
3 Cesta k souboru Portable Application Description
Parametr 1 je povinný, z parametrů 2 a 3 lze zadat oba nebo jeden z nich.
Do Post-build události v příslušném projektu ji můžete zadat takto:
"%ProgramFiles%\VersionChanger\ChangeVersion.exe" /AssemblyFile="$(TargetDir)" /SetupScriptFile="$(ProjectDir)MyApplication.iss" /PADFile="$(ProjectDir)MyApplication_PAD.xml"
V Inno Setupu nezapomeňte nastavit kódování skriptu na UTF8 (File/Save Encoding/UTF-8), jinak by se při přepisování skriptu špatně zapsaly Unicode znaky.
PAD soubor vytvoříte pomocí freeware nástroje PADGen od Association of Software Professionals a tento soubor slouží jako standardizovaný formát pro popis vaší aplikace. Je to něco jako kdysi za starých časů soubory FILE_ID.DIZ.
Nástroj Version Changer 1.1 si můžete stáhnout včetně zdrojových kódů (svůj klíč pro podepisování pochopitelně nedistribuji, takže proveďte příslušné změny ve vlastnostech projektu).