Freigeben über


AssemblyVersionAttribute Klasse

Definition

Gibt die Version der Assembly an, die attributiert wird.

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
Vererbung
AssemblyVersionAttribute
Attribute

Beispiele

Im folgenden Beispiel wird das AssemblyVersionAttribute Attribut verwendet, um einer Assembly eine Versionsnummer zuzuweisen. Zur Kompilierungszeit werden diese Versionsinformationen mit den Metadaten der Assembly gespeichert. Zur Laufzeit ruft das Beispiel den Wert der Type.Assembly Eigenschaft für einen Typ in der Assembly ab, um einen Verweis auf die ausgeführte Assembly abzurufen, und es ruft die Versionsinformationen der Assembly aus der Version Eigenschaft des Objekts ab, das AssemblyName von der Assembly.GetName Methode zurückgegeben wird.

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.

Hinweise

Das AssemblyVersionAttribute Attribut wird verwendet, um einer Assembly eine Versionsnummer zuzuweisen. Diese Versionsnummer wird dann mit den Metadaten der Assembly gespeichert.

Die Assemblyversionsnummer ist Teil der Identität einer Assembly und spielt einen wichtigen Teil bei der Bindung an die Assembly und in der Versionsrichtlinie. Die Standardversionsrichtlinie für die Laufzeit besteht darin, dass Anwendungen nur mit den Versionen ausgeführt werden, mit denen sie erstellt und getestet wurden, es sei denn, sie werden von der expliziten Versionsrichtlinie in Konfigurationsdateien außer Kraft gesetzt (die Anwendungskonfigurationsdatei, die Herausgeberrichtliniendatei und die Administratorkonfigurationsdatei des Computers). Weitere Informationen finden Sie unter Assemblys in .NET .

Hinweis

Die Version wird nur bei Assemblys mit starkem Namen überprüft.

Die Versionsnummer weist vier Teile auf:

<Hauptversion>.<Nebenversion>.<Buildnummer>.<Revision>

Von Bedeutung

Alle Komponenten der Version müssen ganze Zahlen größer oder gleich 0 sein. Metadaten beschränken die Haupt-, Neben-, Build- und Revisionskomponenten für eine Assembly auf einen Maximalwert von UInt16.MaxValue - 1. Wenn eine Komponente diesen Wert überschreitet, tritt ein Kompilierungsfehler auf.

Gibt beispielsweise [assembly:AssemblyVersion("2.3.25.1")] 2 als Hauptversion an, 3 als Nebenversion, 25 als Buildnummer und 1 als Revisionsnummer.

Mit dem AssemblyVersionAttribute Attribut können Sie anstelle der Build- oder Revisionsnummer ein Sternchen (*) angeben. Eine Versionsnummer, z [assembly:AssemblyVersion("1.2.*")] . B. 1 als Hauptversion und 2 als Nebenversion, und akzeptiert die Standardbuild- und Revisionsnummern. Eine Versionsnummer, z [assembly:AssemblyVersion("1.2.15.*")] . B. 1 als Hauptversion, 2 als Nebenversion und 15 als Buildnummer und akzeptiert die Standardversionsnummer. Die Standardmäßige Buildnummer erhöht sich täglich. Die Standardrevisionsnummer ist die Anzahl der Sekunden seit Mitternacht ortszeit (ohne Berücksichtigung der Zeitzonenanpassungen für Sommerzeit), dividiert durch 2. Wenn Sie ein Sternchen für die Buildnummer angeben, können Sie keine Revisionsnummer angeben.

Von Bedeutung

Verwendung des AssemblyVersionAttribute Attributs, das ein Sternchen angibt:

  • Macht die Buildausgabe nicht reproduzierbar (siehe reproduzierbare Builds). Wenn die Buildeigenschaft des Projekts auf true einen Fehler CS8357 festgelegt Deterministic wird, wird vom Compiler gemeldet.
  • Die Buildleistung kann beeinträchtigt werden, da build keine Compilerausgabe zwischenspeichert.
  • Ist nicht kompatibel mit den Features "Bearbeiten" und "Weiter " und " Hot Reload" .

Sie können einige dieser Probleme mindern, indem Sie die Verwendung zeitbasierter Versionen zum Freigeben von Builds mit bedingter Kompilierung beschränken, z. B.:

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

Ein besserer Ansatz für die Versionsverwaltung besteht darin, die Assembly- oder Dateiversion vom HEAD Commit-SHA (für Git-Repositorys) abzuleiten. Siehe z. B. Nerdbank.GitVersioning.

Die Haupt- und Nebenversionen der Assembly werden beim Exportieren der Assembly als Versionsnummer der Typbibliothek verwendet. Einige COM-Hosts akzeptieren keine Typbibliotheken mit der Versionsnummer 0.0. Wenn Sie daher eine Assembly für COM-Clients verfügbar machen möchten, legen Sie die Assemblyversion explizit auf 1.0 auf der Seite für Projekte fest, die AssemblyVersionAttribute außerhalb von Visual Studio 2005 erstellt wurden, und ohne AssemblyVersionAttribute Angabe. Führen Sie dies auch dann aus, wenn die Assemblyversion 0.0 ist. Alle in Visual Studio 2005 erstellten Projekte verfügen über eine Standardassemblyversion von 1.0.*.

Rufen GetName Sie die Assembly auf, um den Namen einer assembly abzurufen, die Sie geladen haben, und AssemblyNamerufen Sie dann die Version Eigenschaft ab. Um den Namen einer Assembly abzurufen, die Sie nicht geladen haben, rufen Sie von Der Clientanwendung auf GetAssemblyName , um die Assemblyversion zu überprüfen, die Ihre Anwendung verwendet.

Das AssemblyVersionAttribute Attribut kann nur einmal angewendet werden. Einige Visual Studio-Projektvorlagen enthalten bereits das Attribut. In diesen Projekten verursacht das Hinzufügen des Attributs im Code einen Compilerfehler.

Konstruktoren

Name Beschreibung
AssemblyVersionAttribute(String)

Initialisiert eine neue Instanz der AssemblyVersionAttribute Klasse mit der Versionsnummer der Assembly, die attributiert wird.

Eigenschaften

Name Beschreibung
TypeId

Wenn sie in einer abgeleiteten Klasse implementiert wird, wird ein eindeutiger Bezeichner für diese Attribute.

(Geerbt von Attribute)
Version

Ruft die Versionsnummer der zugeordneten Assembly ab.

Methoden

Name Beschreibung
Equals(Object)

Gibt einen Wert zurück, der angibt, ob diese Instanz einem angegebenen Objekt entspricht.

(Geerbt von Attribute)
GetHashCode()

Gibt den Hashcode für diese Instanz zurück.

(Geerbt von Attribute)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
IsDefaultAttribute()

Wenn sie in einer abgeleiteten Klasse überschrieben wird, gibt an, ob der Wert dieser Instanz der Standardwert für die abgeleitete Klasse ist.

(Geerbt von Attribute)
Match(Object)

Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem angegebenen Objekt entspricht.

(Geerbt von Attribute)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

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

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.

(Geerbt von Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Ruft die Typinformationen für ein Objekt ab, mit denen die Typinformationen für eine Schnittstelle abgerufen werden können.

(Geerbt von Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).

(Geerbt von Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Bietet Zugriff auf Eigenschaften und Methoden, die von einem Objekt verfügbar gemacht werden.

(Geerbt von Attribute)

Gilt für:

Weitere Informationen