AssemblyVersionAttribute Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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
- 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
Deterministicoptrueeen foutCS8357, 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 enHot 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 |
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) |