AssemblyVersionAttribute Klas

Definitie

Hiermee geeft u de versie van de assembly die wordt toegeschreven.

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
Overname
AssemblyVersionAttribute
Kenmerken

Voorbeelden

In het volgende voorbeeld wordt het AssemblyVersionAttribute kenmerk gebruikt om een versienummer toe te wijzen aan een assembly. Tijdens het compileren worden deze versiegegevens opgeslagen met de metagegevens van de assembly. Tijdens runtime haalt het voorbeeld de waarde van de Type.Assembly eigenschap op van een type dat in de assembly is gevonden om een verwijzing naar de uitvoerende assembly op te halen en wordt de versie-informatie van de assembly opgehaald uit de Version eigenschap van het AssemblyName object dat door de Assembly.GetName methode wordt geretourneerd.

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.

Opmerkingen

Het AssemblyVersionAttribute kenmerk wordt gebruikt om een versienummer toe te wijzen aan een assembly. Dat versienummer wordt vervolgens opgeslagen met de metagegevens van de assembly.

Het versienummer van de assembly maakt deel uit van de identiteit van een assembly en speelt een belangrijke rol bij het binden aan de assembly en in versiebeleid. Het standaardversiebeleid voor de runtime is dat toepassingen alleen worden uitgevoerd met de versies waarmee ze zijn gebouwd en getest, tenzij ze worden overschreven door expliciet versiebeleid in configuratiebestanden (het toepassingsconfiguratiebestand, het uitgeversbeleidsbestand en het beheerdersconfiguratiebestand van de computer). Zie Assemblies in .NET voor meer informatie.

Note

Versiecontrole vindt alleen plaats met sterk benoemde assembly's.

Het versienummer heeft vier delen, als volgt:

<hoofdversie>.<subversie>.<buildnummer>.<revisie>

Important

Alle onderdelen van de versie moeten gehele getallen groter dan of gelijk aan 0 zijn. Metagegevens beperken de primaire, secundaire, build- en revisieonderdelen voor een assembly tot een maximumwaarde van UInt16.MaxValue - 1. Als een onderdeel deze waarde overschrijdt, treedt er een compilatiefout op.

Geeft bijvoorbeeld [assembly:AssemblyVersion("2.3.25.1")] 2 aan als de primaire versie, 3 als secundaire versie, 25 als buildnummer en 1 als revisienummer.

Met AssemblyVersionAttribute het kenmerk kunt u een sterretje (*) opgeven in plaats van het build- of revisienummer. Een versienummer, zoals [assembly:AssemblyVersion("1.2.*")] 1 als primaire versie en 2 als secundaire versie, en accepteert de standaard build- en revisienummers. Een versienummer, zoals [assembly:AssemblyVersion("1.2.15.*")] 1 als primaire versie, 2 als secundaire versie en 15 als buildnummer, en accepteert het standaardrevisienummer. Het standaard buildnummer wordt dagelijks verhoogd. Het standaardrevisienummer is het aantal seconden sinds de lokale tijd van middernacht (zonder rekening te houden met tijdzoneaanpassingen voor zomertijd), gedeeld door 2. Als u een sterretje opgeeft voor het buildnummer, kunt u geen revisienummer opgeven.

Important

Gebruik van het AssemblyVersionAttribute kenmerk dat een sterretje aangeeft:

  • Maakt de build-uitvoer niet-reproduceerbare (zie Reproduceerbare builds). Als de build-eigenschap door het project wordt ingesteld Deterministic op true een fout CS8357 , wordt door de compiler gerapporteerd.
  • Kan de prestaties van de build verminderen, omdat het voorkomt dat builds uitvoer van compileren in de cache opslaan.
  • Is niet compatibel met de Bewerken & Doorgaan en Hot Reload functies.

U kunt enkele van deze problemen beperken door het gebruik van op tijd gebaseerde versies te beperken tot releaseversies met behulp van voorwaardelijke compilatie, zoals:

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

Een betere benadering van versiebeheer is het afleiden van de assembly- of bestandsversie van de HEAD doorvoer-SHA (voor Git-opslagplaatsen). Zie bijvoorbeeld Nerdbank.GitVersioning.

De primaire en secundaire assemblyversies worden gebruikt als het versienummer van de typebibliotheek wanneer de assembly wordt geëxporteerd. Sommige COM-hosts accepteren geen typebibliotheken met versienummer 0.0. Als u daarom een assembly beschikbaar wilt maken voor COM-clients, stelt u de assemblyversie expliciet in op 1.0 op de pagina AssemblyVersionAttribute voor projecten die buiten Visual Studio 2005 zijn gemaakt en zonder AssemblyVersionAttribute opgegeven. Doe dit zelfs wanneer de assemblyversie 0.0 is. Alle projecten die zijn gemaakt in Visual Studio 2005, hebben een standaardassemblyversie van 1.0.*.

Als u de naam van een assembly wilt ophalen die u hebt geladen, roept GetName u de assembly aan om een AssemblyNameen vervolgens de Version eigenschap op te halen. Als u de naam van een assembly wilt ophalen die u niet hebt geladen, roept GetAssemblyName u de clienttoepassing aan om de assemblyversie te controleren die door uw toepassing wordt gebruikt.

Het AssemblyVersionAttribute kenmerk kan slechts eenmaal worden toegepast. Sommige Visual Studio projectsjablonen bevatten al het kenmerk. In deze projecten veroorzaakt het toevoegen van het kenmerk in code een compilerfout.

Constructors

Name Description
AssemblyVersionAttribute(String)

Initialiseert een nieuw exemplaar van de AssemblyVersionAttribute klasse met het versienummer van de assembly dat wordt toegewezen.

Eigenschappen

Name Description
TypeId

Wanneer deze wordt geïmplementeerd in een afgeleide klasse, krijgt u Attributehiervoor een unieke id.

(Overgenomen van Attribute)
Version

Hiermee wordt het versienummer van de toegeschreven assembly ophaalt.

Methoden

Name Description
Equals(Object)

Retourneert een waarde die aangeeft of dit exemplaar gelijk is aan een opgegeven object.

(Overgenomen van Attribute)
GetHashCode()

Retourneert de hash-code voor dit exemplaar.

(Overgenomen van Attribute)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
IsDefaultAttribute()

Wanneer deze wordt overschreven in een afgeleide klasse, geeft u aan of de waarde van dit exemplaar de standaardwaarde is voor de afgeleide klasse.

(Overgenomen van Attribute)
Match(Object)

Wanneer deze wordt overschreven in een afgeleide klasse, wordt een waarde geretourneerd die aangeeft of dit exemplaar gelijk is aan een opgegeven object.

(Overgenomen van Attribute)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Expliciete interface-implementaties

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

Hiermee wordt een set namen toegewezen aan een bijbehorende set verzend-id's.

(Overgenomen van Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Hiermee haalt u de typegegevens voor een object op, die kan worden gebruikt om de typegegevens voor een interface op te halen.

(Overgenomen van Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Hiermee wordt het aantal type-informatieinterfaces opgehaald dat een object biedt (0 of 1).

(Overgenomen van Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Biedt toegang tot eigenschappen en methoden die door een object worden weergegeven.

(Overgenomen van Attribute)

Van toepassing op

Zie ook