Version Klasse

Definition

Stellt die Versionsnummer einer Assembly, eines Betriebssystems oder der Common Language Runtime dar. Diese Klasse kann nicht vererbt werden.

public ref class Version sealed : IComparable, IComparable<Version ^>, IEquatable<Version ^>
public ref class Version sealed : ICloneable, IComparable, IComparable<Version ^>, IEquatable<Version ^>
public ref class Version sealed : ICloneable, IComparable, IComparable<Version ^>, IEquatable<Version ^>, ISpanFormattable
public ref class Version sealed : ICloneable, IComparable
public sealed class Version : IComparable, IComparable<Version>, IEquatable<Version>
public sealed class Version : ICloneable, IComparable, IComparable<Version>, IEquatable<Version>
public sealed class Version : ICloneable, IComparable, IComparable<Version>, IEquatable<Version>, ISpanFormattable
[System.Serializable]
public sealed class Version : ICloneable, IComparable
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class Version : ICloneable, IComparable, IComparable<Version>, IEquatable<Version>
type Version = class
    interface IComparable
    interface IComparable<Version>
    interface IEquatable<Version>
type Version = class
    interface ICloneable
    interface IComparable
    interface IComparable<Version>
    interface IEquatable<Version>
type Version = class
    interface ICloneable
    interface IComparable
    interface IComparable<Version>
    interface IEquatable<Version>
    interface ISpanFormattable
    interface IFormattable
type Version = class
    interface IComparable
    interface IComparable<Version>
    interface IEquatable<Version>
    interface ICloneable
[<System.Serializable>]
type Version = class
    interface ICloneable
    interface IComparable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Version = class
    interface ICloneable
    interface IComparable
    interface IComparable<Version>
    interface IEquatable<Version>
Public NotInheritable Class Version
Implements IComparable, IComparable(Of Version), IEquatable(Of Version)
Public NotInheritable Class Version
Implements ICloneable, IComparable, IComparable(Of Version), IEquatable(Of Version)
Public NotInheritable Class Version
Implements ICloneable, IComparable, IComparable(Of Version), IEquatable(Of Version), ISpanFormattable
Public NotInheritable Class Version
Implements ICloneable, IComparable
Vererbung
Version
Attribute
Implementiert

Beispiele

Im folgenden Beispiel wird das AssemblyVersionAttribute -Attribut verwendet, um einer Assembly eine Versionsnummer zu zuweisen. Zur Kompilierzeit werden diese Versionsinformationen mit den Metadaten der Assembly gespeichert. Zur Laufzeit ruft das Beispiel den Wert der -Eigenschaft für einen In der Assembly gefundenen Typ ab, um einen Verweis auf die ausführende Assembly abzurufen, und ruft die Versionsinformationen der Assembly aus der -Eigenschaft des -Objekts ab, das von der -Methode zurückgegeben Type.Assembly Version AssemblyName Assembly.GetName 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

Versionsnummern bestehen aus zwei bis vier Komponenten: Hauptversion, Nebenversion, Build und Revision. Die Haupt- und Nebenkomponenten sind erforderlich. Die Build- und Revisionskomponenten sind optional, aber die Buildkomponente ist erforderlich, wenn die Revisionskomponente definiert ist. Alle definierten Komponenten müssen ganze Zahlen größer oder gleich 0 sein. Das Format der Versionsnummer lautet wie folgt (optionale Komponenten werden in eckigen Klammern ([ und ]) angezeigt:

Haupt-. neben[.build[.Revision]]

Die Komponenten werden konventions folgend verwendet:

  • Hauptversion: Assemblys mit demselben Namen, aber verschiedenen Hauptversionen sind nicht austauschbar. Eine höhere Versionsnummer kann möglicherweise eine vollständige Überarbeitung eines Produkts angeben, bei dem die Abwärtskompatibilität nicht vorausgesetzt werden kann.

  • Nebenversion: Wenn der Name und die Nummer der Hauptversion für zwei Assemblys identisch sind, sich jedoch die Nummer der Nebenversion unterscheidet, kann davon ausgegangen werden, dass Verbesserungen vorgenommen wurden, während gleichzeitig die Abwärtskompatibilität gewährleistet wird. Diese höhere Nebenversionsnummer kann auf die Nebenversion eines Produkts oder eine neuen Produktversion mit vollständiger Abwärtskompatibilität hindeuten.

  • Buildnummer: ein Unterschied in der Buildnummer verweist auf eine Neukompilierung der gleichen Quelle. Verschiedene Buildnummern können verwendet werden, wenn der Prozessor, die Plattform oder der Compiler geändert wird.

  • Revision: Assemblys mit demselben Namen, den gleichen Haupt- und Nebenversionsnummern, aber unterschiedlichen Revisionen sollen vollständig austauschbar sein. Eine höhere Revisionsnummer kann in einem Build verwendet werden, der eine Sicherheitslücke in einer zuvor freigegebenen Assembly behebt.

Nachfolgende Versionen einer Assembly, die sich nur durch Build- oder Revisionsnummern unterscheiden, werden als Hotfixupdates der vorherigen Version betrachtet.

Wichtig

Der Wert von Eigenschaften, denen nicht explizit ein Wert zugewiesen wurde, ist Version nicht definiert (-1).

Ab .NET Framework 2.0 können Sie mit den Eigenschaften und eine temporäre Version Ihrer Anwendung identifizieren, die z. B. ein Problem korrigiert, bis Sie eine dauerhafte Lösung MajorRevision MinorRevision veröffentlichen können. Darüber hinaus verwendet Windows NT-Betriebssystem die -Eigenschaft, MajorRevision um die Service Pack-Nummer zu codieren.

Zuweisen von Versionsinformationen zu Assemblys

Normalerweise wird die -Klasse nicht verwendet, um einer Version Assembly eine Versionsnummer zu zuweisen. Stattdessen wird die -Klasse verwendet, um die Version einer Assembly zu definieren, wie im AssemblyVersionAttribute Beispiel in diesem Thema veranschaulicht.

Abrufen von Versionsinformationen

Version -Objekte werden am häufigsten verwendet, um Versionsinformationen zu einigen System- oder Anwendungskomponenten (z. B. dem Betriebssystem), der Common Language Runtime, der ausführbaren Datei der aktuellen Anwendung oder einer bestimmten Assembly zu speichern. Die folgenden Beispiele veranschaulichen einige der häufigsten Szenarien:

  • Abrufen der Betriebssystemversion. Im folgenden Beispiel wird die OperatingSystem.Version -Eigenschaft verwendet, um die Versionsnummer des Betriebssystems abzurufen.

    // Get the operating system version.
    OperatingSystem os = Environment.OSVersion;
    Version ver = os.Version;
    Console.WriteLine("Operating System: {0} ({1})", os.VersionString, ver.ToString());
    
    ' Get the operating system version.
    Dim os As OperatingSystem = Environment.OSVersion
    Dim ver As Version = os.Version
    Console.WriteLine("Operating System: {0} ({1})", os.VersionString, ver.ToString())
    
  • Abrufen der Version der Common Language Runtime. Im folgenden Beispiel wird die Environment.Version -Eigenschaft verwendet, um Versionsinformationen zur Common Language Runtime abzurufen.

    // Get the common language runtime version.
    Version ver = Environment.Version;
    Console.WriteLine("CLR Version {0}", ver.ToString());
    
    ' Get the common language runtime version.
    Dim ver As Version = Environment.Version
    Console.WriteLine("CLR Version {0}", ver.ToString())
    
  • Abrufen der Assemblyversion der aktuellen Anwendung. Im folgenden Beispiel wird die -Methode verwendet, um einen Verweis auf ein Objekt abzurufen, das die ausführbare Datei der Anwendung darstellt, und ruft Assembly.GetEntryAssembly Assembly dann die Assemblyversionsnummer ab.

    using System;
    using System.Reflection;
    
    public class Example
    {
       public static void Main()
       {
          // Get the version of the executing assembly (that is, this assembly).
          Assembly assem = Assembly.GetEntryAssembly();
          AssemblyName assemName = assem.GetName();
          Version ver = assemName.Version;
          Console.WriteLine("Application {0}, Version {1}", assemName.Name, ver.ToString());
       }
    }
    
    Imports System.Reflection
    
    Module Example
       Public Sub Main()
          ' Get the version of the executing assembly (that is, this assembly).
          Dim assem As Assembly = Assembly.GetEntryAssembly()
          Dim assemName As AssemblyName = assem.GetName()
          Dim ver As Version = assemName.Version
          Console.WriteLine("Application {0}, Version {1}", assemName.Name, ver.ToString())
       End Sub
    End Module
    
  • Abrufen der Assemblyversion der aktuellen Assembly. Im folgenden Beispiel wird die -Eigenschaft verwendet, um einen Verweis auf ein -Objekt abzurufen, das die Assembly darstellt, die den Anwendungseinstiegspunkt enthält, und ruft Type.Assembly Assembly dann dessen Versionsinformationen ab.

    using System;
    using System.Reflection;
    
    public class Example
    {
       public static void Main()
       {
          // Get the version of the current assembly.
          Assembly assem = typeof(Example).Assembly;
          AssemblyName assemName = assem.GetName();
          Version ver = assemName.Version;
          Console.WriteLine("{0}, Version {1}", assemName.Name, ver.ToString());
       }
    }
    
    Imports System.Reflection
    
    Module Example
       Public Sub Main()
          ' Get the version of the current assembly.
          Dim assem As Assembly = GetType(Example).Assembly
          Dim assemName As AssemblyName = assem.GetName()
          Dim ver As Version = assemName.Version
          Console.WriteLine("{0}, Version {1}", assemName.Name, ver.ToString())            VB
       End Sub
    End Module
    
  • Abrufen der Version einer bestimmten Assembly. Im folgenden Beispiel wird die -Methode verwendet, um einen Verweis auf ein Objekt abzurufen, das über einen bestimmten Dateinamen verfügt, und ruft Assembly.ReflectionOnlyLoadFrom Assembly dann dessen Versionsinformationen ab. Beachten Sie, dass auch mehrere andere Methoden vorhanden sind, um ein Objekt nach Dateiname oder Assembly starkem Namen zu instanziieren.

    using System;
    using System.Reflection;
    
    public class Example
    {
       public static void Main()
       {
          // Get the version of a specific assembly.
          string filename = @".\StringLibrary.dll";
          Assembly assem = Assembly.ReflectionOnlyLoadFrom(filename);
          AssemblyName assemName = assem.GetName();
          Version ver = assemName.Version;
          Console.WriteLine("{0}, Version {1}", assemName.Name, ver.ToString());
       }
    }
    
    Imports System.Reflection
    
    Module Example
       Public Sub Main()
          ' Get the version of a specific assembly.
          Dim filename As String = ".\StringLibrary.dll"
          Dim assem As Assembly = Assembly.ReflectionOnlyLoadFrom(filename)
          Dim assemName As AssemblyName = assem.GetName()
          Dim ver As Version = assemName.Version
          Console.WriteLine("{0}, Version {1}", assemName.Name, ver.ToString())
       End Sub
    End Module
    
  • Abrufen der Veröffentlichungsversion einer ClickOnce Anwendung. Im folgenden Beispiel wird die ApplicationDeployment.CurrentVersion -Eigenschaft verwendet, um die Veröffentlichungsversion einer Anwendung anzuzeigen. Beachten Sie, dass für die erfolgreiche Ausführung die Anwendungsidentität des Beispiels festgelegt werden muss. Dies wird automatisch vom Visual Studio Veröffentlichungs-Assistenten behandelt.

    using System;
    using System.Deployment.Application;
    
    public class Example
    {
       public static void Main()
       {
          Version ver = ApplicationDeployment.CurrentDeployment.CurrentVersion;
          Console.WriteLine("ClickOnce Publish Version: {0}", ver);
       }
    }
    
    Imports System.Deployment.Application
    
    Module Example
       Public Sub Main()
          Dim ver As Version = ApplicationDeployment.CurrentDeployment.CurrentVersion
          Console.WriteLine("ClickOnce Publish Version: {0}", ver)
       End Sub
    End Module
    

    Wichtig

    Die Veröffentlichungsversion einer Anwendung für ClickOnce bereitstellung ist vollständig unabhängig von ihrer Assemblyversion.

Vergleichen von Versionsobjekten

Sie können die -Methode verwenden, um zu bestimmen, ob ein Objekt vor, dasselbe wie oder höher als ein CompareTo Version zweites Objekt Version ist. Im folgenden Beispiel wird angegeben, dass Version 2.1 höher als Version 2.0 ist.

Version v1 = new Version(2, 0);
Version v2 = new Version("2.1");
Console.Write("Version {0} is ", v1);
switch(v1.CompareTo(v2))
{
   case 0:
      Console.Write("the same as");
      break;
   case 1:
      Console.Write("later than");
      break;
   case -1:
      Console.Write("earlier than");
      break;
}
Console.WriteLine(" Version {0}.", v2);                  
// The example displays the following output:
//       Version 2.0 is earlier than Version 2.1.
Dim v1 As New Version(2,0)
Dim v2 As New Version("2.1")
Console.Write("Version {0} is ", v1)
Select Case v1.CompareTo(v2)
   Case 0
      Console.Write("the same as")
   Case 1
      Console.Write("later than")
   Case -1
      Console.Write("earlier than")
End Select
Console.WriteLine(" Version {0}.", v2)                  
' The example displays the following output:
'       Version 2.0 is earlier than Version 2.1.

Damit zwei Versionen gleich sind, müssen die Haupt-, Neben-, Build- und Revisionsnummern des ersten Objekts mit denen des Version zweiten Objekts Version identisch sein. Wenn die Build- oder Revisionsnummer eines -Objekts nicht definiert ist, wird dieses Objekt als vor einem -Objekt betrachtet, dessen Build- oder Revisionsnummer Version Version gleich Version 0 (null) ist. Im folgenden Beispiel wird dies veranschaulicht, indem drei Objekte verglichen Version werden, die nicht definierte Versionskomponenten haben.

using System;

enum VersionTime {Earlier = -1, Same = 0, Later = 1 };

public class Example
{
   public static void Main()
   {
      Version v1 = new Version(1, 1);
      Version v1a = new Version("1.1.0");
      ShowRelationship(v1, v1a);
      
      Version v1b = new Version(1, 1, 0, 0);
      ShowRelationship(v1b, v1a);
   }

   private static void ShowRelationship(Version v1, Version v2)
   {
      Console.WriteLine("Relationship of {0} to {1}: {2}", 
                        v1, v2, (VersionTime) v1.CompareTo(v2));       
   }
}
// The example displays the following output:
//       Relationship of 1.1 to 1.1.0: Earlier
//       Relationship of 1.1.0.0 to 1.1.0: Later
Public Enum VersionTime
   Earlier = -1
   Same = 0
   Later = 1
End Enum

Module Example
   Public Sub Main()
      Dim v1 As New Version(1, 1)
      Dim v1a As New Version("1.1.0")
      ShowRelationship(v1, v1a)
      
      Dim v1b As New Version(1, 1, 0, 0)
      ShowRelationship(v1b, v1a)
   End Sub

   Private Sub ShowRelationship(v1 As Version, v2 As Version)
      Console.WriteLine("Relationship of {0} to {1}: {2}", 
                        v1, v2, CType(v1.CompareTo(v2), VersionTime))       
   End Sub
End Module
' The example displays the following output:
'       Relationship of 1.1 to 1.1.0: Earlier
'       Relationship of 1.1.0.0 to 1.1.0: Later

Konstruktoren

Version()

Initialisiert eine neue Instanz der Version-Klasse.

Version(Int32, Int32)

Initialisiert eine neue Instanz der Version-Klasse mit den angegebenen Werten für Haupt- und Nebenversion.

Version(Int32, Int32, Int32)

Initialisiert eine neue Instanz der Version-Klasse mit den angegebenen Werten für Haupt- und Nebenversion sowie für Build.

Version(Int32, Int32, Int32, Int32)

Initialisiert eine neue Instanz der Version-Klasse mit den angegebenen Hauptversions-, Nebenversions-, Build- und Revisionsnummern.

Version(String)

Initialisiert eine neue Instanz der Version-Klasse unter Verwendung der angegebenen Zeichenfolge.

Eigenschaften

Build

Ruft den Wert der Buildkomponente der Versionsnummer für das aktuelle Version-Objekt ab.

Major

Ruft den Wert der Hauptkomponente der Versionsnummer für das aktuelle Version-Objekt ab.

MajorRevision

Ruft die oberen 16 Bits der Revisionsnummer ab.

Minor

Ruft den Wert der Nebenkomponente der Versionsnummer für das aktuelle Version-Objekt ab.

MinorRevision

Ruft die unteren 16 Bits der Revisionsnummer ab.

Revision

Ruft den Wert der Revisionskomponente der Versionsnummer für das aktuelle Version-Objekt ab.

Methoden

Clone()

Gibt ein neues Version-Objekt zurück, dessen Wert mit dem aktuellen Version-Objekt identisch ist.

CompareTo(Object)

Vergleicht das aktuelle Version-Objekt mit einem angegebenen Objekt und gibt eine Angabe über das Verhältnis der jeweiligen Werte zurück.

CompareTo(Version)

Vergleicht das aktuelle Version-Objekt mit einem angegebenen Version-Objekt und gibt eine Angabe über das Verhältnis der jeweiligen Werte zurück.

Equals(Object)

Gibt einen Wert zurück, der angibt, ob das aktuelle Version-Objekt einem angegebenen Objekt entspricht.

Equals(Version)

Gibt einen Wert zurück, der angibt, ob das aktuelle Version-Objekt und ein angegebenes Version-Objekt denselben Wert darstellen.

GetHashCode()

Gibt einen Hashcode für das aktuelle Version-Objekt zurück.

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
Parse(ReadOnlySpan<Char>)

Konvertiert die angegebene schreibgeschützte Zeichenspanne, die eine Versionsnummer für ein entsprechendes Version-Objekt darstellt.

Parse(String)

Konvertiert die Zeichenfolgendarstellung einer Versionsnummer in ein entsprechendes Version-Objekt.

ToString()

Konvertiert den Wert des aktuellen Version-Objekts in die entsprechende String-Darstellung.

ToString(Int32)

Konvertiert den Wert des aktuellen Version-Objekts in die entsprechende String-Darstellung. Eine angegebene Anzahl bezieht sich auf die Anzahl der zurückzugebenden Komponenten.

TryFormat(Span<Char>, Int32)

Versucht, diese Versionsinstanz in eine Zeichenspanne zu formatieren

TryFormat(Span<Char>, Int32, Int32)

Versucht, diese Versionsinstanz in eine Zeichenspanne zu formatieren

TryParse(ReadOnlySpan<Char>, Version)

Versucht, die angegebene schreibgeschützte Zeichenspanne einer Versionsnummer in ein entsprechendes Version-Objekt zu konvertieren, und gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich durchgeführt wurde

TryParse(String, Version)

Versucht, die Zeichenfolgendarstellung einer Versionsnummer in ein entsprechendes Version-Objekt zu konvertieren, und gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich durchgeführt wurde.

Operatoren

Equality(Version, Version)

Bestimmt, ob zwei Version-Objekte gleich sind.

GreaterThan(Version, Version)

Bestimmt, ob das erste angegebene Version-Objekt größer als das zweite angegebene Version-Objekt ist.

GreaterThanOrEqual(Version, Version)

Bestimmt, ob das erste angegebene Version-Objekt größer oder gleich dem zweiten angegebenen Version-Objekt ist.

Inequality(Version, Version)

Bestimmt, ob zwei angegebene Version-Objekte ungleich sind.

LessThan(Version, Version)

Bestimmt, ob das erste angegebene Version-Objekt kleiner als das zweite angegebene Version-Objekt ist.

LessThanOrEqual(Version, Version)

Bestimmt, ob das erste angegebene Version-Objekt kleiner oder gleich dem zweiten Version-Objekt ist.

Explizite Schnittstellenimplementierungen

IComparable.CompareTo(Object)

Vergleicht das aktuelle Version-Objekt mit einem angegebenen Objekt und gibt eine Angabe über das Verhältnis der jeweiligen Werte zurück.

IFormattable.ToString(String, IFormatProvider)

Formatiert den Wert der aktuellen Instanz mit dem angegebenen Format.

ISpanFormattable.TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider)

Versucht, den Wert der aktuellen Instanz in die bereitgestellte Zeichenspanne zu formatieren.

Gilt für: