Jak nejlépe využít verzi souboru a verze sestavení?

hlasů
54

NET existují dvě čísla verzí k dispozici při vytváření projektu, verzi souboru a verze sestavení. Jak se vám pomocí těchto čísel? Jejich udržování stejné? Auto-postupně jednu, ale ručně měnit druhé?

Také to, co o AssemblyInformationalVersionatributu?

Jsem našel tento podpůrný Microsoft Knowledge Base (KB) článek, který poskytl pomoc: Jak používat verze sestavení a montáž verze souboru .

Položena 18/08/2008 v 16:10
zdroj uživatelem
V jiných jazycích...                            


8 odpovědí

hlasů
74

V řešení s více projekty, jedna věc, kterou jsem našel velmi užitečné, je mít všechny soubory AssemblyInfo poukazují na jednom projektu, který řídí správu verzí. Takže moje AssemblyInfos mít řádek:

[assembly: AssemblyVersion(Foo.StaticVersion.Bar)]

Mám projekt s jediným souborem, který deklaruje řetězec:

namespace Foo
{
    public static class StaticVersion
    {
         public const string Bar= "3.0.216.0"; // 08/01/2008 17:28:35
    }
}

Můj automatizovaný build proces pak už jen změní tento řetězec tahem nejnovější verzi z databáze a postupně druhé poslední číslo.

I změnit pouze Major číslo sestavení, kdy featureset dramaticky změní.

I nemění verzí souborů vůbec.

Odpovězeno 18/08/2008 v 17:03
zdroj uživatelem

hlasů
22

V článku KB zmiňuje nejdůležitější rozdíly: verze souborů jsou používány pouze pro účely zobrazení, zatímco verze sestava hraje důležitou roli v chování .NET zatížení.

Pokud změníte číslo sestavení verze, pak totožnost sestavě jako celek změnila. Vývojáři budou muset znovu odkazovat nové verze (pokud si dát nějaký auto-verzí „politiku“ na místě) a za běhu pouze sestavení s odpovídající čísla verze bude načten.

To je důležité v mém prostředí, kde potřebujeme zvyšování, nepřehlédnutelnou číslo verze pro účely auditu, ale nechceme nutit vývojáře přestavět nebo mít mnoho variant současně ve výrobě. V tomto případě je pro zpětně kompatibilní s drobnými změnami aktualizujeme verzi souboru, ale ne sestava verze.

Odpovězeno 18/08/2008 v 18:25
zdroj uživatelem

hlasů
14

Ve scénáři, kde mám více sestav souborů (tedy 1 exe a 5 DLL) budu používat jinou verzi souboru pro každého, ale stejný montážní verzi pro všechny z nich, která vám umožní zjistit, které exe každý dll jít s.

Odpovězeno 18/08/2008 v 16:20
zdroj uživatelem

hlasů
12

verze souborů jsou používány pouze pro účely zobrazení, zatímco verze sestava hraje důležitou roli v chování .NET zatížení.

Ne tak docela. Verze souboru je také důležité pro Windows Installer při inovaci existující verzi přes starou.

Odpovězeno 12/11/2009 v 17:42
zdroj uživatelem

hlasů
11

S mým aktuální aplikace, každý projekt VS má odkaz na „AssemblyBuildInfo“ zdrojový soubor, který má následující atributy:

[assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyCompany("Acme Corporationy")]
[assembly: AssemblyCopyright("Copyright ©  2009 Acme Corporation")]

Tímto způsobem jsou všechny sestavy v mém podíl řešení stejné verzi a informace o společnosti (to znamená, když budu muset změnit, jsem to změnit pouze jednou). Vyloučením FileVersion, je automaticky nastavena na AssemblyVersion.

Odpovězeno 12/11/2009 v 17:48
zdroj uživatelem

hlasů
3

@Adam: Měníte verzi souboru s každým stavět? Používáte správu verzí (SYN nebo VSS) a použít tyto informace k propojení zdroje zpět do binární soubory?

Zdá se, že smysl, že verze shromáždění zůstane stejný. tj "2.0.0.0". Která odpovídá nasazení produktu.

Změny verze souboru, aby odpovídal revizi z ovládacího prvku zdroje. „2.0.??.revision“ To by poskytnout odkaz z určitého DLL (nebo EXE) ke zdroji, který jej postaven.

Odpovězeno 18/08/2008 v 16:55
zdroj uživatelem

hlasů
2

Napsal jsem blog post o tomto tématu, které mohou být užitečné pro komunitu http://blog.raffaeu.com/archive/2011/12/11/sharing-assembly-version-in-visual-studio-2010.aspx

Odpovězeno 11/12/2011 v 23:14
zdroj uživatelem

hlasů
0

Pořád jim to samé. Ale pak, nemám multifilové sestavy, což je případ, kdy počet AssemblyVersion důležitá. I pomocí kódování data Microsoft stylu pro své buildu, spíše než auto-increment (nepovažuji kolikrát, že něco bylo postavena tak, aby vše, co důležité).

Odpovězeno 18/08/2008 v 16:11
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more