Freigeben über


AssemblyVersionAttribute Klasse

Definition

Gibt die Version der Assembly an, die gerade mit Attributen versehen 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 Kompilierzeit werden diese Versionsinformationen mit den Metadaten der Assembly gespeichert. Zur Laufzeit ruft das Beispiel den Wert der Type.Assembly -Eigenschaft für einen In der Assembly gefundenen Typ ab, um einen Verweis auf die ausführende 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 Versionsnummer der Assembly ist Teil der Identität einer Assembly und spielt eine wichtige Rolle bei der Bindung an die Assembly und in der Versionsrichtlinie. Der Standardversionsrichtlinie für die Laufzeit zufolge werden Anwendungen nur in der Version ausgeführt, in der sie erstellt und getestet wurden, sofern dies nicht durch eine explizite Versionsrichtlinie in den Konfigurationsdateien (die Anwendungskonfigurationsdatei, die Herausgeberrichtliniendatei und die Administratorkonfigurationsdatei für den Computer) überschrieben wird. Weitere Informationen finden Sie unter Assemblys in .NET .

Hinweis

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

Die Versionsnummer umfasst wie folgt vier Teile:

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

Wichtig

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 den maximalen Wert - UInt16.MaxValue 1. Wenn eine Komponente diesen Wert überschreitet, tritt ein Kompilierungsfehler auf.

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

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

Wichtig

Verwendung des AssemblyVersionAttribute Attributs, das ein Sternchen angibt:

  • Macht die Buildausgaben nicht reproduzierbar (siehe Reproduzierbare Builds). Wenn das Projekt die Buildeigenschaft auf true einen Fehler CS8357 festlegtDeterministic, wird vom Compiler gemeldet.
  • Kann die Buildleistung beeinträchtigen, da dadurch verhindert wird, dass Compilerausgaben vom Build zwischengespeichert werden.
  • Ist mit den Features "Bearbeiten & Weiter" und "Hot Reload" nicht kompatibel.

Sie können einige dieser Probleme beheben, indem Sie die Verwendung zeitbasierter Versionen für die Freigabe von Builds mithilfe der bedingten Kompilierung einschrä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 eine Assembly für COM-Clients verfügbar machen möchten, legen Sie daher die Assemblyversion für Projekte, die außerhalb von Visual Studio 2005 erstellt wurden, auf der AssemblyVersionAttribute Seite explizit auf 1.0 fest.AssemblyVersionAttribute Führen Sie dies auch dann aus, wenn die Assemblyversion 0.0 ist. Alle in Visual Studio 2005 erstellten Projekte verfügen über die Standardassemblyversion 1.0.*.

Um den Namen einer geladenen Assembly abzurufen, rufen GetName Sie die Assembly auf, um einen AssemblyNameabzurufen, und rufen Sie dann die -Eigenschaft ab Version . Um den Namen einer Assembly abzurufen, die Sie nicht geladen haben, rufen GetAssemblyName Sie von Ihrer Clientanwendung auf, 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

AssemblyVersionAttribute(String)

Initialisiert eine neue Instanz der AssemblyVersionAttribute-Klasse mit der Versionsnummer der Assembly, die mit Attributen versehen wird.

Eigenschaften

TypeId

Ruft bei Implementierung in einer abgeleiteten Klasse einen eindeutigen Bezeichner für dieses Attribute ab.

(Geerbt von Attribute)
Version

Ruft die Versionsnummer der mit Attributen versehenen Assembly ab.

Methoden

Equals(Object)

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

(Geerbt von Attribute)
GetHashCode()

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

(Geerbt von Attribute)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
IsDefaultAttribute()

Gibt beim Überschreiben in einer abgeleiteten Klasse an, ob der Wert der Instanz der Standardwert für die abgeleitete Klasse ist.

(Geerbt von Attribute)
Match(Object)

Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem bestimmten Objekt entspricht.

(Geerbt von Attribute)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

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

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

_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 deren Hilfe 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)

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.

(Geerbt von Attribute)

Gilt für:

Weitere Informationen