Vra

In .NET daar is twee weergawe nommers beskikbaar is wanneer die bou van'n projek, Lêer Weergawe en die Gemeente Weergawe.Hoe is jy met behulp van hierdie getalle?Hou hulle dieselfde?Auto-verhoog een, maar self op die verandering van die ander?

Ook, wat oor die AssemblyInformationalVersion skryf?

Ek het gevind dat hierdie ondersteuning Microsoft Knowledge Base (KB) artikel wat op voorwaarde dat'n paar help: Hoe om te gebruik Vergadering Weergawe en die Gemeente Lêer Weergawe.

Was dit nuttig?

Oplossing

In 'n scenario waar ek verskeie lêer gemeentes (dws 1 exe en 5 dlls) Ek sal 'n ander lêer weergawe vir elke, maar dit is dieselfde vergadering weergawe gebruik vir almal, sodat jy weet wat elkeen van die dlls exe gaan met.

Ander wenke

In oplossings met verskeie projekte, een ding wat ek gevind baie nuttig is om al die AssemblyInfo lêers verwys na 'n enkele projek wat die weergawes regeer. So my AssemblyInfos 'n lyn:

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

Ek het 'n projek met 'n enkele lêer wat die string verklaar:

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

My outomatiese bou proses dan net verander wat string deur te trek die mees onlangse weergawe van die databasis en die verhoog die tweede laaste nommer.

Ek net verander die Groot build nommer wanneer die featureset dramaties verander.

Ek het nie die lêer weergawe tog omruil.

Die KB artikel noem die mees belangrike onderskeid:Lêer weergawes is slegs gebruik word vir vertoon doeleindes, terwyl die vergadering weergawe speel'n belangrike rol in die .NET laai gedrag.

As jy verander die vergadering weergawe nommer, dan is die identiteit van die gemeente as'n geheel verander.Ontwikkelaars sal nodig het om te bou aan die verwysing jou nuwe weergawe (tensy jy het'n motor-weergawes "beleid" in die plek) en by runtime net gemeentes met bypassende weergawe getalle sal gelaai word.

Dit is belangrik om in my omgewing, waar ons nodig het om'n verhoog, hoogs sigbaar weergawe nommer vir oudit doeleindes, maar ons wil nie te dwing ontwikkelaars te herbou of het baie weergawes gelyktydig in produksie.In hierdie geval vir backwardly-versoenbaar klein veranderinge wat ons werk om die lêer weergawe, maar nie die vergadering weergawe.

  

Lêer weergawes word slegs gebruik vir uitstalling, terwyl die vergadering weergawe 'n belangrike rol in die NET laai gedrag speel.

Nie heeltemal. Die lêer weergawe is ook belangrik vir Windows Installer wanneer jy 'n bestaande weergawe op te gradeer oor 'n vorige een.

Met my huidige aansoek, elke VS projek het 'n skakel na 'n "AssemblyBuildInfo" bron lêer wat die volgende eienskappe het:

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

Op hierdie manier, al die gemeentes in my oplossing aandeel dieselfde weergawe en maatskappy-inligting (wat beteken as ek dit verander, ek verander dit net een keer). Deur uitsluiting van die FileVersion, is dit outomaties na die AssemblyVersion.

@Adam: Is jy die verandering van die lêer weergawe met mekaar te bou? Gebruik jy weergawe beheer (SYN of VSS) en die gebruik van daardie inligting te bron terug verwys na die binaries?

Lyk sin dat die Vergadering weergawe bly dieselfde maak. maw "2.0.0.0". Wat ooreenstem met die ontplooiing van die produk.

Die lêer weergawe veranderinge aan die hersiening van die bron beheer aan te pas. "2.0.??.revision" Dit sou 'n skakel vanaf 'n spesifieke dll (of exe) om die bron wat dit gebou voorsien.

Ek het 'n blog post oor hierdie onderwerp wat nuttig is vir die gemeenskap http://blog.raffaeu.com/archive/2011/12/11/sharing-assembly-version-in-visual-studio-2010.aspx

Ek hou van hulle dieselfde. Maar dan, ek het nie 'multifile gemeentes, wat is wanneer die AssemblyVersion aantal belangrike raak. Ek gebruik Microsoft-styl datum kodering vir my bou getalle, eerder as om outomaties die verhoog (Ek weet nie vind die aantal kere wat iets is gebou om alles wat belangrik).

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top