Manison Softworks

Version Maintainer – automatické číslování verzí
Visual C++
Zpět
Domů
E-mail

Visual C++ neumožňuje automaticky inkrementovat číslo verze v resources při každém novém sestavení projektu. Version Maintainer je konzolová utilita, která podle přepínače inkrementuje (příp. dekrementuje) nebo nastavuje makro v hlavičkovém souboru. Jestliže přidáte Version Maintainer s příslušnými parametry do kolonky Post-Build Event ve vlastnostech projektu, bude číslo verze v hlavičkovém souboru při každém sestavení projektu inkrementováno.

Parametry příkazové řádky jsou následující:
  vermnt hdrfile macroname [/In | /Sn]  
kde hdrfile je jméno hlavičkového souboru, macroname název symbolu, a n je celé číslo (i záporné). Pokud je zadán přepínač /In bude k aktuální hodnotě makra přičteno n, při použití volby /Sn bude hodnota symbolu nastavena na n. Jestliže není specifikována ani jedna z možností, použije se implicitní nastavení odpovídající /I1.

Archiv Version Maintainer obsahuje kromě aplikace samotné navíc soubory version.h a version.rc2, které můžete upravit a použít ve svém projektu takto:
  • přidejte soubory version.h a version.rc2 do projektu, soubor version.rc2 upravte podle svých představ (jméno projektu, společnost...), ve vlastnostech souboru version.rc2 zvolte nástroj Resource Compiler
  • do příkazové řádky Post-Build Event přidejte vermnt version.h VER_BUILD
  • odpovídajícím způsobem nastavte symboly pro Resource Compiler (tj. _DEBUG pro ladící verzi projektu, _WINDLL pokud je projekt dll)
Nyní při každém sestavení projektu bude inkrementováno makro VER_BUILD v souboru version.h a poté bude zkompilován skript version.rc2 s informací o nové verzi aplikace. Výsledkem je version resource přilinkovaný k výsledné aplikaci.

Výhodou utility Version Maintainer oproti podobným programům je to, že Version Maintainer nemodifikuje verzi výsledné aplikace, ale nastavení verze se děje na úrovni zdrojového textu před zkompilováním projektu a do výsledku se již nijak nezasahuje. Version Maintainer je také univerzálnější a díky tomu, že zpracovává hlavičkové soubory není jeho použití omezeno jen na nastavení verze projektu. Navíc hlavičku s informací o verzi můžete použít i na jiných místech projektu než v resource skriptu.
  • Pokud potřebujete použít symbol s verzí projektu v jiném zdrojovém souboru, nevkládejte hlavičku s verzí mezi předkompilované soubory (např. stdafx.h). Jelikož se verze s každým dalším sestavením mění, bylo by nutné znovu zkompilovat všechny hlavičkové soubory a předkompilování by tím zcela ztratilo smysl. Místo toho #includujte version.h jen do těch modulů, ve kterých definici verze skutečně potřebujete.
  • Kromě informaci o verzi nevkládejte do hlavičkového souboru žádné jiné definice symbolů či deklarace funkcí.
  • Version Maintainer vyžaduje, aby definice měla následující tvar: #define name value, mezi znakem '#' a slovem 'define' nesmí být žádná mezera ani tabelátor, jméno symbolu musí být od slova 'define' odděleno jednou mezerou, hodnota makra musí být celé číslo a musí být oddělena od jména jedním nebo více bílým znakem (mezera, tabelátor), za hodnotou nesmí být kromě bílých znaků jiný text (např. komentář).
vermnt.zip (41 KB)
Systém: MS Windows Me/2000/XP
2003 – 2021 © Manison Softworks. Všechna práva vyhrazena.
Poslední aktualizace: 16. 12. 2023