AssemblyVersionAttribute Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
- 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
trueeinen FehlerCS8357festgelegtDeterministicwird, 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 |
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) |