Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

Version-Klasse

Aktualisiert: Juli 2008

Stellt die Versionsnummer für eine Common Language Runtime-Assembly dar. Die Klasse kann nicht geerbt werden.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

[SerializableAttribute]
[ComVisibleAttribute(true)]
public sealed class Version : ICloneable, 
	IComparable, IComparable<Version>, IEquatable<Version>
/** @attribute SerializableAttribute */ 
/** @attribute ComVisibleAttribute(true) */
public final class Version implements ICloneable, 
	IComparable, IComparable<Version>, IEquatable<Version>
public final class Version implements ICloneable, IComparable, IComparable<Version>, IEquatable<Version>

Verwenden Sie ein Version-Objekt, um die Versionsnummer einer Assembly zu speichern und für Vergleiche bereitzustellen. Beachten Sie, dass ein Version-Objekt manuell oder in einer Anwendung auf die Versionsnummer einer Assembly festgelegt werden kann. Das Version-Objekt wird nicht automatisch auf die Versionsnummer einer bestimmten Assembly festgelegt, und die Version-Klasse stellt keine Member für das Ermitteln solcher Informationen bereit.

Versionsnummern bestehen aus zwei bis vier Komponenten: Haupt- und Nebenversion sowie Build- und Revision. Die Haupt- und Nebenkomponenten sind erforderlich; die Build- und Revisionskomponenten sind optional, allerdings ist die Buildkomponente erforderlich, wenn die Revisionskomponente definiert wurde. Alle definierten Komponenten müssen ganze Zahlen größer oder gleich 0 (null) sein. Die Versionsnummer muss folgendem Format entsprechen. Optionale Komponenten werden in eckigen Klammern ("[" und "]") angezeigt.

major.minor[.build[.revision]]

Die Komponenten werden konventionsgemäß wie folgt verwendet:

  • Major: Assemblys mit demselben Namen, aber unterschiedlichen Hauptversionen sind nicht austauschbar. Dies würde sich z. B. für eine neue Produktversion mit so gravierenden Änderungen anbieten, dass Abwärtskompatibilität nicht vorausgesetzt werden kann.

  • Minor: Wenn der Name und die Hauptversionsnummer für zwei Assemblys gleich sind, die Nebenversionsnummern sich jedoch unterscheiden, weist dies auf eine wesentliche Verbesserung hin, bei der jedoch eine Abwärtskompatibilität angestrebt wurde. Dies wäre z. B. für eine Point Release eines Produkts oder eine vollständig abwärtskompatible neue Version eines Produkts geeignet.

  • Build: Eine unterschiedliche Buildnummer verweist auf eine Neukompilierung desselben Quellcodes. Dies bietet sich bei Prozessor-, Plattform- oder Compileränderungen an.

  • Revision: Assemblys mit demselben Namen, derselben Haupt- und Nebenversionsnummer, aber unterschiedlichen Revisionen sollen vollständig austauschbar sein. Dies bietet sich für die Beseitigung von Sicherheitsmängeln in einer zuvor veröffentlichten Assembly an.

Nachfolgende Versionen einer Assembly, die sich nur durch Build- oder Revisionsnummer unterscheiden, gelten als Hotfix-Aktualisierungen der früheren Version.

Beginnend mit .NET Framework 2.0 können Sie mit den MajorRevision-Eigenschaften und den MinorRevision-Eigenschaften eine temporäre Version Ihrer Anwendung identifizieren, um beispielsweise ein Problem zu beheben, für das gegenwärtig noch keine dauerhafte Lösung erhältlich ist. Darüber hinaus verwendet das Betriebssystem Windows NT die MajorRevision-Eigenschaft, um die Nummer des Service Packs zu codieren.

Diese Klasse implementiert die Schnittstellen ICloneable, IComparable, IComparable<T> und IEquatable<T>.

Zuweisen von Versionsinformationen zu Assemblys

Normalerweise wird die Version-Klasse nicht verwendet, um einer Assembly eine Versionsnummer zuzuweisen. Stattdessen wird mit der AssemblyVersionAttribute-Klasse die Version einer Assembly definiert.

Abrufen von Versionsinformationen

Version-Objekte werden am häufigsten verwendet, um Versionsinformationen einer System- oder Anwendungskomponente (z. B. das Betriebssystem), der Common Language Runtime, der ausführbaren Datei der aktuellen Anwendung oder einer bestimmten Assembly zu speichern. In den folgenden Beispielen werden einige der häufigsten Szenarios veranschaulicht:

  • Abrufen der Betriebssystemversion. Im folgenden Beispiel wird mit der OperatingSystem.Version-Eigenschaft die Versionsnummer des Betriebssystems abgerufen.

    // Get the operating system version.
    OperatingSystem os = Environment.OSVersion;
    Version ver = 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 über die Common Language Runtime abzurufen.

    // Get the common language runtime version.
    Version ver = Environment.Version;
    Console.WriteLine("CLR Version {0}", ver.ToString());
    
    
    
  • Abrufen der Version der aktuellen Anwendung. Im folgenden Beispiel wird die Assembly.GetEntryAssembly-Methode verwendet, um einen Verweis auf ein Assembly-Objekt abzurufen, das die ausführbare Datei der Anwendung darstellt, und anschließend wird ihre Versionsnummer abgerufen.

    // 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());
    
    
    
  • Abrufen der Version der aktuellen Assembly. Im folgenden Beispiel wird die Assembly.GetExecutingAssembly-Methode verwendet, um einen Verweis auf ein Assembly-Objekt abzurufen, das die aktuelle Assembly darstellt, und anschließend werden ihre Versionsinformationen abgerufen.

    // Get the version of the current application.
    Assembly assem = Assembly.GetExecutingAssembly();
    AssemblyName assemName = assem.GetName();
    Version ver = assemName.Version;
    Console.WriteLine("{0}, Version {1}", assemName.Name, ver.ToString());
    
    
    
  • Abrufen der Version einer bestimmten Assembly. Im folgenden Beispiel wird die Assembly.ReflectionOnlyLoadFrom-Methode verwendet, um einen Verweis auf ein Assembly-Objekt abzurufen, das über einen bestimmten Dateinamen verfügt, und anschließend werden seine Versionsinformationen abgerufen. Beachten Sie, dass auch mehrere andere Methoden vorhanden sind, um ein Assembly-Objekt nach Dateinamen oder starkem Namen zu instanziieren.

    // 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());
    
    
    

Im folgenden Codebeispiel wird die Assembly-Klasse verwendet, um das Version-Objekt abzurufen, das eine Assembly bezeichnet.

// This code example demonstrates the Version class.

/* 
   This code example loads an assembly and retrieves its 
   version number. 
   Typically, you would use code similar to this example 
   to load a separate assembly and obtain its version number. 
   However, solely to avoid using another assembly, this code 
   example loads itself and retrieves its own version number. 

   This code example is created in two steps:
1) The AssemblyVersionAttribute attribute is applied to this 
   code example at the assembly level. Then the code example 
   is compiled into the MyAssembly.exe executable assembly.
2) When MyAssembly.exe is executed, it loads itself, then 
   displays its own version number. 
*/

using System;
using System.Reflection;

// Apply the version number, 1.2.3.4, to this assembly.
[assembly:AssemblyVersionAttribute("1.2.3.4")]
class Sample 
{
    public static void Main() 
    {
// Use the Assembly class to load MyAssembly.exe. Note that
// the name of the assembly does not include the ".exe" suffix
// of the executable file.

    Assembly myAsm = Assembly.Load("MyAssembly");
    AssemblyName aName = myAsm.GetName();

// Store the version number in a Version object.
    Version ver = aName.Version;

// Display the version number of MyAssembly.
    Console.WriteLine(ver);
    }
}

/*
This code example produces the following results:

1.2.3.4

*/


Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile für Smartphone, Windows Mobile für Pocket PC, Xbox 360

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 3.5, 2.0, 1.0

XNA Framework

Unterstützt in: 2.0, 1.0

Datum

Versionsgeschichte

Grund

Juli 2008

Dem Abschnitt Hinweise Abschnitte über das Zuweisen und Abrufen von Versionsinformationen hinzugefügt.

Kundenfeedback.

Anzeigen: