Automatické číslování verzí ve Visual C++

Chtěli byste, aby každé sestavení (build) vaší aplikace obsahovalo označení čísla sestavení ? To není problém, ale kdo se s tím má po každé release kompilaci upravovat ? Tento článek obsahuje návod, jak se vyhnout upravování verzí aplikace nebo její komponenty po každém sestavení release verze.

Jak označují build profesionálové

Jestliže kliknete na vyvoláte vlastnosti nějaké systémové knihovny nebo ovladače, většinou tam najdete informace o verzi. Např. knihovna mfc42.dll má označení obsahuje verze 4.1.0.6140 (Na vašem počítači se může číslo verze mírně lišit). Poslední číslo bývá u knihoven společnosti Microsoft většinou tzv. build number (číslo sestavení). Jeho význam může být různý, nejčastěji je to ale počet sestavení od počátku vývoje knihovny až do jeho vydání. Pokud byste chtěli verzovat vaši aplikaci podobným způsobem, zanedlouho přijdete na to, že po každém sestavení zvýšit číslo buildu o 1 je pěkná otrava.

MkBuildNum to udělá za vás

Protože na provádění opakovaných triviálních úkonů máme buďto cvičené opice, nebo počítače, napsal jsem jednoduchou aplikaci MkBuildNum, která provádí zvýšení čísla verze automaticky. Jeho použití je jednoduché - stačí ji spustit s parametrem jména resource souboru, který je vložen do projektu:

MkBuildNum  Aplikace.rc

A aby číslování verzí probíhalo automaticky, je nutné po každém sestavení release verze spustit program MkBuildNum:

Nastavení projektu pro automatické číslování verzí

Po sestavení projektu se v okně "Build" objeví i informace o verzi, která byla právě sestavena:

Výstup překladače

Použití programu MkBuildNum

Program MkBuildNum je možné použít několika způsoby, podle parametrů zadaných na příkazové řádce:

  1. MkBuildNum Soubor.RC [/noproductver]
    MkBuildNum vyhledá v souboru RC blok jmenující se VS_VERSION_INFO a zvýší poslední číslo v proměnné "File Version" a "Product Version". Pokud při spuštění programu zadáte parametr /noproductver, MkBuildNum zvýší pouze číslo u proměnné "File Version".
  2. MkBuildNum SetProductVer 2.5.0.0
    Tato syntaxe se používá k overzování všech komponent aplikace. Předpokládá se, že v aktuálním adresáři jsou projekty jednotlivých komponent, každá v jednom podadresáři. MkBuildNum projde podadresáře a nastaví číslo verze v nalezených RC souborech. První tři čísla v označení verze jsem nastaveny podle zadaného parametru, poslední čísílko (které je považováno za číslo sestavení komponenty) je ponecháno beze změny.
  3. MkBuildNum Soubor.TXT
    Pokud jako parametr zadáte jméno souboru s příponou TXT, MkBuildNum očekává textový soubor, ve kterém bude napsáno číslo. Toto číslo bude zvětšeno o 1 a uloženo do téhož souboru. Dá se použít v případě, kdy chcete číslovat jednotlivá sestavení jinak než v resourcech.
  4. MkBuildNum /?
    Zobrazí stručnou nápovědu.

Stáhnout prográmek MkBuildNum (21 KB)