Avatar
Michaal.K
Člen
Avatar
Michaal.K:

Ahoj,
chtěl jsem se zeptat jak nejlépe udělat automatické verzování programu. Napadlo mě, že bych mohl program verzovat tak, že bych při každém překladu nastavil v AssemblyInfo.cs do Build Number datum (den, mesic, rok). Vypadalo by to asi takto: 1.0.0.27042016. Ale nevím jak přesně na to...
Nebo používáte někdo lepší způsob verzování?? Prosím podělte se o něj :-)
Díky za pomoc

 
Odpovědět 27. dubna 15:51
Avatar
Posix
Člen
Avatar
Odpovídá na Michaal.K
Posix:

V tom assembly můžeš použít hvězdičku, která se postará o automatické zvyšování verze. Neovlivníš ale jak to číslo bude vypadat.

[assembly: AssemblyVersion("1.0.*")]
Nahoru Odpovědět 27. dubna 17:21
Proč to dělat jednoduše, když to jde složitě.
Avatar
Odpovídá na Michaal.K
Michal Štěpánek:

Já sice verzuju ručně, ale používám formát číslo-rok-měsíc-číslo verze, např. 1.16.04.2

Nahoru Odpovědět 28. dubna 7:42
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Michaal.K
Člen
Avatar
Odpovídá na Posix
Michaal.K:

Ahoj,
to jsem zkoušel, ale to mi vrátí toto:
1.0.5962.17491
a já chtěl do tý verze programu nějak zakomponovat datum překladu. Nebo ztěchto čísel dostat datum, ale to nevím jak :-( Co jsem zjistil tak to třetí číslo by mělo být počet dní od 1.1.2000 a to čtvrté by měla být polovina početu sekund od půlnoci.
Napadlo mě ještě do vlastností projektu v Build events dát příkaz aby do assemblyVersion uložil aktuální datum... Ale to zatím taky nevím jak. Díky

 
Nahoru Odpovědět 28. dubna 10:50
Avatar
LacoS.
Člen
Avatar
LacoS.:

Verziu programu tam davas ako Retazec pred prekladom!!! a az potom sa z toho vytvori *.exe; Nevies urobit zmenu v C# programe, aby to menilo verziu programu, lebo program sa spustu az po startnuti;

Jedina moznost je (co mi napada), ze si vyrobis program (versioner.exe/bat/com), ktory Ti vyrobi cely subor: AssemblyInfo.cs (alebo zmeni len verziu podla Tvojich poziadaviek), a pred samotnym prekladom najprv spustis versioner a az potom preklad.
(napr. vo VS: BuildEvents -> PreBuild-event command line)

 
Nahoru Odpovědět 28. dubna 14:22
Avatar
Michaal.K
Člen
Avatar
Odpovídá na Posix
Michaal.K:

Tak jsem nakonec použil v assembly hvězdičku. A ve formuláři about zobrazuji verzi takto:

System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
Version verzeProg = assembly.GetName().Version;
DateTime datumPrekladu = new DateTime(2000, 1, 1).AddDays(verzeProg.Build).AddSeconds(verzeProg.Revision * 2);
if (Convert.ToInt32(datumPrekladu.Month) < 10)
{
        lblVersion.Text = (verzeProg.Major + "." + verzeProg.Minor + "." + datumPrekladu.Year + "." + "0" + datumPrekladu.Month);
}
else
{
        lblVersion.Text = (verzeProg.Major + "." + verzeProg.Minor + "." + datumPrekladu.Year + "." + datumPrekladu.Month);
}

Takže v softu verze programu vypadá takto: 1.0.2016.05
Ještě jsem se chtěl zeptat při kompilaci mi někdy vyskočí varování:

Assembly generation -- Verze 1.0.* určená pro sestavení verze souboru není v normálním formátu hlavní.dílčí.sestavení.revize.

a nevím proč?? Jestli to je, že jsem použil v assembly hvězdičku?

[assembly: AssemblyVersion("1.0.*")]

Díky

 
Nahoru Odpovědět 10. května 10:23
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.