AssemblyVersionAttribute Klass

Definition

Anger vilken version av sammansättningen som tilldelas.

public ref class AssemblyVersionAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, Inherited=false)]
public sealed class AssemblyVersionAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false)]
public sealed class AssemblyVersionAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, Inherited=false)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class AssemblyVersionAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly, Inherited=false)>]
type AssemblyVersionAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false)>]
type AssemblyVersionAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly, Inherited=false)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type AssemblyVersionAttribute = class
    inherit Attribute
Public NotInheritable Class AssemblyVersionAttribute
Inherits Attribute
Arv
AssemblyVersionAttribute
Attribut

Exempel

I följande exempel används attributet AssemblyVersionAttribute för att tilldela ett versionsnummer till en sammansättning. Vid kompileringstillfället lagras den här versionsinformationen med sammansättningens metadata. Vid körning hämtar exemplet värdet Type.Assembly för egenskapen på en typ som finns i sammansättningen för att hämta en referens till den körande sammansättningen och hämtar sammansättningens versionsinformation från Version egenskapen AssemblyName för objektet som returneras av Assembly.GetName metoden.

using System;
using System.Reflection;

[assembly:AssemblyVersionAttribute("2.0.1")]

public class Example1
{
   public static void Main()
   {
      Assembly thisAssem = typeof(Example1).Assembly;
      AssemblyName thisAssemName = thisAssem.GetName();
       
      Version ver = thisAssemName.Version;
       
      Console.WriteLine("This is version {0} of {1}.", ver, thisAssemName.Name);    
   }
}
// The example displays the following output:
//        This is version 2.0.1.0 of Example1.
Imports System.Reflection

<Assembly:AssemblyVersionAttribute("2.0.1")>
Module Example1
   Public Sub Main()
       Dim thisAssem As Assembly = GetType(Example1).Assembly
       Dim thisAssemName As AssemblyName = thisAssem.GetName()
       
       Dim ver As Version = thisAssemName.Version
       
       Console.WriteLine("This is version {0} of {1}.", ver, thisAssemName.Name)    
   End Sub
End Module
' The example displays the following output:
'      This is version 2.0.1.0 of Example1.

Kommentarer

Attributet AssemblyVersionAttribute används för att tilldela ett versionsnummer till en sammansättning. Versionsnumret lagras sedan med sammansättningens metadata.

Versionsnumret för sammansättningen är en del av en sammansättnings identitet och spelar en viktig roll i bindningen till sammansättningen och i versionsprincipen. Standardversionsprincipen för körningen är att program endast körs med de versioner som de har skapats och testats med, såvida de inte åsidosätts av en explicit versionsprincip i konfigurationsfilerna (programkonfigurationsfilen, utgivarens principfil och datorns administratörskonfigurationsfil). Mer information finns i Assemblies i .NET.

Note

Versionskontrollen sker endast med starka namngivna sammansättningar.

Versionsnumret har fyra delar enligt följande:

<huvudversion>.<delversion>.<versionsnummer>.<revision>

Important

Alla komponenter i versionen måste vara heltal större än eller lika med 0. Metadata begränsar huvudkomponenterna, mindre komponenterna, kompileringen och revisionen för en sammansättning till ett maximalt värde på UInt16.MaxValue - 1. Om en komponent överskrider det här värdet uppstår ett kompileringsfel.

Anger till exempel [assembly:AssemblyVersion("2.3.25.1")] 2 som huvudversion, 3 som delversion, 25 som versionsnummer och 1 som revisionsnummer.

Med AssemblyVersionAttribute attributet kan du ange en asterisk (*) i stället för versions- eller revisionsnumret. Ett versionsnummer som [assembly:AssemblyVersion("1.2.*")] anger 1 som huvudversion och 2 som delversion och accepterar standardversions- och revisionsnumren. Ett versionsnummer som [assembly:AssemblyVersion("1.2.15.*")] anger 1 som huvudversion, 2 som delversion och 15 som versionsnummer och accepterar standardrevisionsnumret. Standardversionsnumret ökar dagligen. Standardrevisionsnumret är antalet sekunder sedan midnatt lokal tid (utan hänsyn till tidszonsjusteringar för sommartid), dividerat med 2. Om du anger en asterisk för versionsnumret kan du inte ange ett revisionsnummer.

Important

Användning av attributet AssemblyVersionAttribute som anger en asterisk:

  • Gör build-utdata icke-reproducerbara (se Reproducerbara versioner). Om projektet anger Deterministic byggegenskapen till true ett fel CS8357 rapporteras av kompilatorn.
  • Kan försämra byggprestanda eftersom det förhindrar kompilatorutdata från cachelagring.
  • Är inte kompatibelt med Redigera & Fortsätt och Hot Reload funktioner.

Du kan åtgärda vissa av dessa problem genom att begränsa användningen av tidsbaserade versioner till versionsversioner med hjälp av villkorlig kompilering, så här:

#if DEBUG
[assembly: AssemblyVersion("1.0.0.0")]
#else
[assembly: AssemblyVersion("1.0.*")]
#endif

En bättre metod för versionshantering är att härleda sammansättningen eller filversionen från inchecknings-SHA HEAD (för git-lagringsplatser). Se till exempel Nerdbank.GitVersioning.

Sammansättningsmajor- och delversionerna används som typbibliotekets versionsnummer när sammansättningen exporteras. Vissa COM-värdar accepterar inte typbibliotek med versionsnummer 0.0. Om du vill exponera en sammansättning för COM-klienter anger du därför sammansättningsversionen explicit till 1.0 på sidan AssemblyVersionAttribute för projekt som skapats utanför Visual Studio 2005 och utan AssemblyVersionAttribute angivet. Gör detta även när sammansättningsversionen är 0.0. Alla projekt som skapats i Visual Studio 2005 har en standardsammansättningsversion på 1.0.*.

Om du vill hämta namnet på en sammansättning som du har läst in anropar GetName du sammansättningen för att hämta en AssemblyNameoch hämtar Version sedan egenskapen. Om du vill hämta namnet på en sammansättning som du inte har läst in anropar GetAssemblyName du från klientprogrammet för att kontrollera den sammansättningsversion som programmet använder.

Attributet AssemblyVersionAttribute kan bara användas en gång. Vissa Visual Studio projektmallar innehåller redan attributet. I dessa projekt orsakar tillägg av attributet i koden ett kompilatorfel.

Konstruktorer

Name Description
AssemblyVersionAttribute(String)

Initierar en ny instans av AssemblyVersionAttribute klassen med versionsnumret för sammansättningen som tilldelas.

Egenskaper

Name Description
TypeId

När den implementeras i en härledd klass hämtar du en unik identifierare för den här Attribute.

(Ärvd från Attribute)
Version

Hämtar versionsnumret för den tillskrivna sammansättningen.

Metoder

Name Description
Equals(Object)

Returnerar ett värde som anger om den här instansen är lika med ett angivet objekt.

(Ärvd från Attribute)
GetHashCode()

Returnerar hash-koden för den här instansen.

(Ärvd från Attribute)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
IsDefaultAttribute()

När den åsidosättas i en härledd klass anger du om värdet för den här instansen är standardvärdet för den härledda klassen.

(Ärvd från Attribute)
Match(Object)

När den åsidosätts i en härledd klass returneras ett värde som anger om den här instansen är lika med ett angivet objekt.

(Ärvd från Attribute)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Explicita gränssnittsimplementeringar

Name Description
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mappar en uppsättning namn till en motsvarande uppsättning av sändningsidentifierare.

(Ärvd från Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Hämtar typinformationen för ett objekt, som kan användas för att hämta typinformationen för ett gränssnitt.

(Ärvd från Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Hämtar antalet typinformationsgränssnitt som ett objekt tillhandahåller (antingen 0 eller 1).

(Ärvd från Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Ger åtkomst till egenskaper och metoder som exponeras av ett objekt.

(Ärvd från Attribute)

Gäller för

Se även