AssemblyVersionAttribute Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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
- 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
Deterministicbyggegenskapen tilltrueett felCS8357rapporteras av kompilatorn. - Kan försämra byggprestanda eftersom det förhindrar kompilatorutdata från cachelagring.
- Är inte kompatibelt med
Redigera & Fortsätt ochHot 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 |
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) |