Diskuze: c# form - automatické verzování programu
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 7 zpráv z 7.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
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.*")]
Já sice verzuju ručně, ale používám formát číslo-rok-měsíc-číslo verze, např. 1.16.04.2
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
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)
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
Zobrazeno 7 zpráv z 7.