Version Klasa

Definicja

Reprezentuje numer wersji zestawu, systemu operacyjnego lub środowiska uruchomieniowego języka wspólnego. Klasa ta nie może być dziedziczona.

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 ICloneable
    interface IComparable
    interface IComparable<Version>
    interface IEquatable<Version>
    interface IFormattable
    interface ISpanFormattable
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
Dziedziczenie
Version
Atrybuty
Implementuje

Przykłady

W poniższym przykładzie użyto atrybutu AssemblyVersionAttribute w celu przypisania numeru wersji do zestawu. W czasie kompilacji te informacje o wersji są przechowywane z metadanymi zestawu. W czasie wykonywania przykład pobiera wartość Type.Assembly właściwości w typie znalezionym w zestawie, aby uzyskać odwołanie do zestawu wykonującego, i pobiera informacje o wersji zestawu z Version właściwości AssemblyName obiektu zwróconego przez metodę Assembly.GetName .

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.
open System.Reflection

[<assembly: AssemblyVersionAttribute "2.0.1">]
do ()

type Example1 = class end

let thisAssem = typeof<Example1>.Assembly
let thisAssemName = thisAssem.GetName()
   
let ver = thisAssemName.Version
   
printfn $"This is version {ver} of {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.

Uwagi

Numery wersji składają się z dwóch do czterech składników: głównych, pomocniczych, kompilacji i poprawek. Wymagane są główne i pomocnicze składniki; składniki kompilacji i poprawek są opcjonalne, ale składnik kompilacji jest wymagany, jeśli składnik poprawki jest zdefiniowany. Wszystkie zdefiniowane składniki muszą być liczbami całkowitymi większymi lub równymi 0. Format numeru wersji jest następujący (opcjonalne składniki są wyświetlane w nawiasach kwadratowych ([ i ]):

głównych. drobne[. build[. poprawka]]

Składniki są używane przez konwencję w następujący sposób:

  • Główna: Zestawy o tej samej nazwie, ale różne wersje główne nie są wymienne. Wyższy numer wersji może wskazywać na główne ponowne zapisywanie produktu, w którym nie można założyć zgodności z poprzednimi wersjami.

  • Pomocnicza: jeśli nazwa i numer wersji głównej w dwóch zestawach są takie same, ale numer wersji pomocniczej jest inny, oznacza to znaczne ulepszenie z zamiarem zgodności z poprzednimi wersjami. Ten wyższy numer wersji pomocniczej może wskazywać na wydanie produktu lub w pełni zgodną z poprzednimi wersjami produktu.

  • Kompilacja: różnica w numerze kompilacji reprezentuje ponowną kompilację tego samego źródła. Różne numery kompilacji mogą być używane w przypadku zmiany procesora, platformy lub kompilatora.

  • Poprawka: Zestawy o tej samej nazwie, głównej i pomocniczej wersji, ale różne wersje mają być w pełni wymienne. W kompilacji może być używany wyższy numer poprawki, który naprawia dziurę zabezpieczeń w wcześniej wydanym zestawie.

Kolejne wersje zestawu, które różnią się tylko numerami kompilacji lub poprawek, są uważane za aktualizacje poprawek poprzedniej wersji.

Ważne

Wartość Version właściwości, które nie zostały jawnie przypisane do wartości, jest niezdefiniowana (-1).

Począwszy od .NET Framework 2.0, MajorRevision właściwości i MinorRevision umożliwiają zidentyfikowanie tymczasowej wersji aplikacji, która na przykład koryguje problem, dopóki nie będzie można zwolnić trwałego rozwiązania. Ponadto system operacyjny Windows NT używa MajorRevision właściwości do kodowania numeru dodatku Service Pack.

Przypisywanie do zestawów informacji o wersji

Zwykle Version klasa nie jest używana do przypisywania numeru wersji do zestawu. AssemblyVersionAttribute Zamiast tego klasa służy do definiowania wersji zestawu, jak pokazano w przykładzie w tym temacie.

Pobieranie informacji o wersji

Version obiekty są najczęściej używane do przechowywania informacji o wersji niektórych składników systemu lub aplikacji (takich jak system operacyjny), środowiska uruchomieniowego języka wspólnego, pliku wykonywalnego bieżącej aplikacji lub określonego zestawu. W poniższych przykładach przedstawiono niektóre z najbardziej typowych scenariuszy:

  • Pobieranie wersji systemu operacyjnego. W poniższym przykładzie użyto OperatingSystem.Version właściwości w celu pobrania numeru wersji systemu operacyjnego.

    // 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.
    let os = Environment.OSVersion
    let ver = os.Version
    printfn $"Operating System: {os.VersionString} ({ver})"
    
    ' 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())
    
  • Pobieranie wersji środowiska uruchomieniowego języka wspólnego. W poniższym przykładzie użyto Environment.Version właściwości , aby pobrać informacje o wersji środowiska uruchomieniowego języka wspólnego.

    // Get the common language runtime version.
    Version ver = Environment.Version;
    Console.WriteLine("CLR Version {0}", ver.ToString());
    
    // Get the common language runtime version.
    let ver = Environment.Version
    printfn $"CLR Version {ver}"
    
    ' Get the common language runtime version.
    Dim ver As Version = Environment.Version
    Console.WriteLine("CLR Version {0}", ver.ToString())
    
  • Pobieranie wersji zestawu bieżącej aplikacji. W poniższym przykładzie użyto Assembly.GetEntryAssembly metody w celu uzyskania odwołania do Assembly obiektu, który reprezentuje plik wykonywalny aplikacji, a następnie pobiera numer wersji zestawu.

    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());
       }
    }
    
    open System.Reflection
    
    // Get the version of the executing assembly (that is, this assembly).
    let assem = Assembly.GetEntryAssembly()
    let assemName = assem.GetName()
    let ver = assemName.Version
    printfn $"Application {assemName.Name}, Version {ver}"
    
    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
    
  • Pobieranie wersji zestawu bieżącego zestawu. W poniższym przykładzie użyto Type.Assembly właściwości , aby uzyskać odwołanie do obiektu reprezentującego Assembly zestaw zawierający punkt wejścia aplikacji, a następnie pobiera informacje o wersji.

    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());
       }
    }
    
    type Example = class end
    
    // Get the version of the current assembly.
    let assem = typeof<Example>.Assembly
    let assemName = assem.GetName()
    let ver = assemName.Version
    printfn $"{assemName.Name}, Version {ver}"
    
    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
    
  • Pobieranie wersji określonego zestawu. W poniższym przykładzie użyto Assembly.ReflectionOnlyLoadFrom metody w celu uzyskania odwołania do Assembly obiektu, który ma określoną nazwę pliku, a następnie pobiera informacje o wersji. Należy pamiętać, że istnieje również kilka innych metod tworzenia Assembly wystąpienia obiektu według nazwy pliku lub silnej nazwy.

    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());
       }
    }
    
    open System.Reflection
    
    // Get the version of a specific assembly.
    let filename = @".\StringLibrary.dll"
    let assem = Assembly.ReflectionOnlyLoadFrom filename
    let assemName = assem.GetName()
    let ver = assemName.Version
    printfn $"{assemName.Name}, Version {ver}"
    
    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
    
  • Pobieranie wersji publikowania aplikacji ClickOnce. W poniższym przykładzie użyto ApplicationDeployment.CurrentVersion właściwości do wyświetlenia wersji publikowania aplikacji. Należy pamiętać, że jego pomyślne wykonanie wymaga ustawienia tożsamości aplikacji przykładu. Jest to obsługiwane automatycznie przez Kreatora publikowania programu Visual Studio.

    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
    

    Ważne

    Wersja publikowania aplikacji dla wdrożenia Technologii ClickOnce jest całkowicie niezależna od wersji zestawu.

Porównywanie wersji obiektów

Można użyć CompareTo metody , aby określić, czy jeden Version obiekt jest wcześniejszy niż, taki sam, jak lub nowszy niż drugi Version obiekt. Poniższy przykład wskazuje, że wersja 2.1 jest nowsza niż wersja 2.0.

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.
open System

let v1 = Version(2, 0)
let v2 = Version "2.1"

printf $"Version {v1} is "

match v1.CompareTo v2 with
| 0 -> printf "the same as"
| 1 -> printf "later than"
| _ -> printf "earlier than"

printf $" Version {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.

Aby dwie wersje były równe, główna, pomocnicza, kompilacja i numery poprawek pierwszego Version obiektu muszą być identyczne z numerami drugiego Version obiektu. Jeśli numer kompilacji lub poprawki Version obiektu jest niezdefiniowany, ten Version obiekt jest uznawany za wcześniejszy niż Version obiekt, którego numer kompilacji lub poprawki jest równy zero. Poniższy przykład ilustruje to, porównując trzy Version obiekty, które mają niezdefiniowane składniki wersji.

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
open System

type VersionTime =
    | Earlier = -1
    | Same = 0
    | Later = 1

let showRelationship (v1: Version) (v2: Version) =
    printfn $"Relationship of {v1} to {v2}: {v1.CompareTo v2 |> enum<VersionTime>}" 

let v1 = Version(1, 1)
let v1a = Version "1.1.0"
showRelationship v1 v1a

let v1b = Version(1, 1, 0, 0)
showRelationship v1b v1a

// 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

Konstruktory

Version()

Inicjuje nowe wystąpienie klasy Version.

Version(Int32, Int32)

Inicjuje Version nowe wystąpienie klasy przy użyciu określonych wartości głównych i pomocniczych.

Version(Int32, Int32, Int32)

Inicjuje Version nowe wystąpienie klasy przy użyciu określonych wartości głównych, pomocniczych i kompilacji.

Version(Int32, Int32, Int32, Int32)

Inicjuje Version nowe wystąpienie klasy z określonymi numerami głównych, pomocniczych, kompilacji i poprawek.

Version(String)

Inicjuje Version nowe wystąpienie klasy przy użyciu określonego ciągu.

Właściwości

Build

Pobiera wartość składnika kompilacji numeru wersji bieżącego Version obiektu.

Major

Pobiera wartość głównego składnika numeru wersji bieżącego Version obiektu.

MajorRevision

Pobiera wysokie 16 bitów numeru poprawki.

Minor

Pobiera wartość pomocniczego składnika numeru wersji bieżącego Version obiektu.

MinorRevision

Pobiera niskie 16 bitów numeru poprawki.

Revision

Pobiera wartość składnika poprawki numeru wersji dla bieżącego Version obiektu.

Metody

Clone()

Zwraca nowy Version obiekt, którego wartość jest taka sama jak bieżący Version obiekt.

CompareTo(Object)

Porównuje bieżący Version obiekt z określonym obiektem i zwraca wskazanie ich wartości względnych.

CompareTo(Version)

Porównuje bieżący Version obiekt z określonym Version obiektem i zwraca wskazanie ich wartości względnych.

Equals(Object)

Zwraca wartość wskazującą, czy bieżący Version obiekt jest równy określonemu obiektowi.

Equals(Version)

Zwraca wartość wskazującą, czy bieżący Version obiekt i określony Version obiekt reprezentują tę samą wartość.

GetHashCode()

Zwraca kod skrótu dla bieżącego Version obiektu.

GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
Parse(ReadOnlySpan<Char>)

Konwertuje określony zakres znaków tylko do odczytu, który reprezentuje numer wersji do równoważnego Version obiektu.

Parse(String)

Konwertuje ciąg reprezentujący numer wersji na obiekt równoważny Version .

ToString()

Konwertuje wartość bieżącego Version obiektu na równoważną String reprezentację.

ToString(Int32)

Konwertuje wartość bieżącego Version obiektu na równoważną String reprezentację. Określona liczba wskazuje liczbę składników do zwrócenia.

TryFormat(Span<Char>, Int32)

Próbuje sformatować to wystąpienie wersji na zakres znaków.

TryFormat(Span<Char>, Int32, Int32)

Próbuje sformatować to wystąpienie wersji na zakres znaków.

TryParse(ReadOnlySpan<Char>, Version)

Próbuje przekonwertować określony zakres znaków tylko do odczytu reprezentujący numer wersji do równoważnego Version obiektu i zwraca wartość wskazującą, czy konwersja zakończyła się pomyślnie.

TryParse(String, Version)

Próbuje przekonwertować ciąg reprezentujący numer wersji na równoważny Version obiekt i zwraca wartość wskazującą, czy konwersja zakończyła się pomyślnie.

Operatory

Equality(Version, Version)

Określa, czy dwa określone Version obiekty są równe.

GreaterThan(Version, Version)

Określa, czy pierwszy określony Version obiekt jest większy niż drugi określony Version obiekt.

GreaterThanOrEqual(Version, Version)

Określa, czy pierwszy określony Version obiekt jest większy niż lub równy drugiemu określonemu Version obiektowi.

Inequality(Version, Version)

Określa, czy dwa określone Version obiekty nie są równe.

LessThan(Version, Version)

Określa, czy pierwszy określony Version obiekt jest mniejszy niż drugi określony Version obiekt.

LessThanOrEqual(Version, Version)

Określa, czy pierwszy określony Version obiekt jest mniejszy niż lub równy drugiemu Version obiektowi.

Jawne implementacje interfejsu

IComparable.CompareTo(Object)

Porównuje bieżący Version obiekt z określonym obiektem i zwraca wskazanie ich wartości względnych.

IFormattable.ToString(String, IFormatProvider)

Formatuje wartość bieżącego wystąpienia przy użyciu określonego formatu.

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

Próbuje sformatować wartość bieżącego wystąpienia w podanym zakresie znaków.

Dotyczy