Version Třída

Definice

Představuje číslo verze sestavení, operačního systému nebo modulu CLR (Common Language Runtime). Tuto třídu nelze dědit.

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
Dědičnost
Version
Atributy
Implementuje

Příklady

Následující příklad používá AssemblyVersionAttribute atribut k přiřazení čísla verze sestavení. V době kompilace se tyto informace o verzi ukládají s metadaty sestavení. V době běhu příklad načte hodnotu Type.Assembly vlastnosti typu nalezeného v sestavení, aby získal odkaz na spouštění sestavení a načte informace o verzi sestavení z Version vlastnosti objektu AssemblyName vrácené Assembly.GetName metodou.

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.

Poznámky

Čísla verzí se skládají ze dvou až čtyř součástí: hlavní, podverze, sestavení a revize. Jsou vyžadovány hlavní a vedlejší součásti; komponenty sestavení a revize jsou volitelné, ale komponenta sestavení se vyžaduje, pokud je komponenta revize definovaná. Všechny definované komponenty musí být celá čísla větší nebo rovna 0. Formát čísla verze je následující (volitelné součásti jsou uvedeny v hranatých závorkách ([ a ]):

major. minor[.build[.revize]]

Komponenty se používají konvencí takto:

  • Hlavní: Sestavení se stejným názvem, ale různé hlavní verze nejsou zaměnitelné. Vyšší číslo verze může znamenat hlavní přepis produktu, u kterého nelze předpokládat zpětnou kompatibilitu.

  • Podverze: Pokud je název a hlavní číslo verze na dvou sestaveních stejné, ale číslo podverze se liší, znamená to významné vylepšení záměrem zpětné kompatibility. Toto vyšší číslo podverze může znamenat bod vydání produktu nebo plně zpětně kompatibilní novou verzi produktu.

  • Sestavení: Rozdíl v čísle sestavení představuje rekompilace stejného zdroje. Různá čísla sestavení se můžou používat při změnách procesoru, platformy nebo kompilátoru.

  • Revize: Sestavení se stejným názvem, hlavním názvem a čísly podverze, ale různé revize mají být plně zaměnitelné. Vyšší číslo revize může být použito v sestavení, které opravuje bezpečnostní díru v dříve vydaném sestavení.

Následující verze sestavení, které se liší pouze podle čísel sestavení nebo revizí, se považují za aktualizace oprav hotfix předchozí verze.

Důležité

Hodnota Version vlastností, které nebyly explicitně přiřazeny, je nedefinovaná (-1).

Počínaje rozhraním .NET Framework 2.0 MajorRevision vám funkce a MinorRevision vlastnosti umožňují identifikovat dočasnou verzi aplikace, která například opraví problém, dokud nebudete moct uvolnit trvalé řešení. Kromě toho systém Windows NT operační systém používá MajorRevision vlastnost k kódování čísla aktualizace Service Pack.

Přiřazení informací o verzi k sestavením

Obvykle Version se třída nepoužívá k přiřazení čísla verze sestavení. AssemblyVersionAttribute Místo toho se třída používá k definování verze sestavení, jak je znázorněno v příkladu v tomto tématu.

Načítání informací o verzi

Version Objekty se nejčastěji používají k ukládání informací o verzi některých systémových nebo aplikačních komponent (například operačního systému), modulu CLR (Common Language Runtime), spustitelném souboru aktuální aplikace nebo konkrétním sestavení. Následující příklady ilustrují některé z nejběžnějších scénářů:

  • Načtení verze operačního systému Následující příklad používá OperatingSystem.Version vlastnost k načtení čísla verze operačního systému.

    // 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())
    
  • Načtení verze modulu CLR (Common Language Runtime) Následující příklad používá Environment.Version vlastnost k načtení informací o verzi modulu CLR (Common Language Runtime).

    // 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())
    
  • Načtení verze sestavení aktuální aplikace Následující příklad používá metodu Assembly.GetEntryAssembly k získání odkazu na Assembly objekt, který představuje spustitelný soubor aplikace a pak načte číslo jeho verze sestavení.

    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
    
  • Načtení verze sestavení aktuálního sestavení Následující příklad používá Type.Assembly vlastnost k získání odkazu na Assembly objekt, který představuje sestavení, které obsahuje vstupní bod aplikace, a pak načte informace o jeho verzi.

    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
    
  • Načtení verze konkrétního sestavení Následující příklad používá metodu Assembly.ReflectionOnlyLoadFrom k získání odkazu na Assembly objekt, který má konkrétní název souboru, a pak načte informace o jeho verzi. Všimněte si, že existuje také několik dalších metod pro vytvoření instance objektu Assembly podle názvu souboru nebo silného názvu.

    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
    
  • Načtení verze publikování ClickOnce aplikace Následující příklad používá ApplicationDeployment.CurrentVersion vlastnost k zobrazení verze publikování aplikace. Všimněte si, že úspěšné spuštění vyžaduje, aby byla nastavena identita aplikace příkladu. Tento průvodce publikováním se zpracovává automaticky 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
    

    Důležité

    Verze publikování aplikace pro nasazení ClickOnce je zcela nezávislá na jeho verzi sestavení.

Porovnávání objektů verze

Metodu CompareTo můžete použít k určení, zda je jeden Version objekt starší, stejný jako nebo novější než druhý Version objekt. Následující příklad označuje, že verze 2.1 je novější než verze 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 byly dvě verze stejné, hlavní, podverze, sestavení a revizní čísla prvního Version objektu musí být shodné s čísly druhého Version objektu. Pokud je číslo Version sestavení nebo revize objektu nedefinované, považuje se tento objekt za dřívější než Version objekt, Version jehož číslo sestavení nebo revize je rovno nule. Následující příklad to ilustruje porovnáním tří Version objektů, které mají nedefinované součásti verze.

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

Inicializuje novou instanci Version třídy.

Version(Int32, Int32)

Inicializuje novou instanci Version třídy pomocí zadaných hlavních a dílčích hodnot.

Version(Int32, Int32, Int32)

Inicializuje novou instanci Version třídy pomocí zadaných hlavních, podverze a sestavení hodnot.

Version(Int32, Int32, Int32, Int32)

Inicializuje novou instanci Version třídy se zadaným hlavním, podverzem, sestavením a revizí.

Version(String)

Inicializuje novou instanci Version třídy pomocí zadaného řetězce.

Vlastnosti

Build

Získá hodnotu součásti sestavení čísla verze aktuálního objektu Version .

Major

Získá hodnotu hlavní komponenty čísla verze aktuálního objektu Version .

MajorRevision

Získá vysoké 16 bitů čísla revize.

Minor

Získá hodnotu podsložky čísla verze aktuálního objektu Version .

MinorRevision

Získá nízké 16 bitů čísla revize.

Revision

Získá hodnotu revizní součásti číslo verze aktuálního Version objektu.

Metody

Clone()

Vrátí nový Version objekt, jehož hodnota je stejná jako aktuální Version objekt.

CompareTo(Object)

Porovná aktuální Version objekt s zadaným objektem a vrátí indikaci jejich relativních hodnot.

CompareTo(Version)

Porovná aktuální Version objekt s zadaným Version objektem a vrátí indikaci jejich relativních hodnot.

Equals(Object)

Vrátí hodnotu určující, zda je aktuální Version objekt roven zadanému objektu.

Equals(Version)

Vrátí hodnotu určující, zda aktuální Version objekt a zadaný Version objekt představují stejnou hodnotu.

GetHashCode()

Vrátí kód hash aktuálního objektu Version .

GetType()

Type Získá aktuální instanci.

(Zděděno od Object)
MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru Object.

(Zděděno od Object)
Parse(ReadOnlySpan<Char>)

Převede zadané rozpětí znaků jen pro čtení, které představuje číslo verze na ekvivalentní Version objekt.

Parse(String)

Převede řetězcovou reprezentaci čísla verze na ekvivalentní Version objekt.

ToString()

Převede hodnotu aktuálního Version objektu na ekvivalentní String reprezentaci.

ToString(Int32)

Převede hodnotu aktuálního Version objektu na ekvivalentní String reprezentaci. Zadaný počet označuje počet součástí, které se mají vrátit.

TryFormat(Span<Char>, Int32)

Pokusí se tuto instanci verze naformátovat do rozsahu znaků.

TryFormat(Span<Char>, Int32, Int32)

Pokusí se tuto instanci verze naformátovat do rozsahu znaků.

TryParse(ReadOnlySpan<Char>, Version)

Pokusí se převést zadané rozpětí znaků jen pro čtení představující číslo verze na ekvivalentní Version objekt a vrátí hodnotu, která označuje, zda převod proběhl úspěšně.

TryParse(String, Version)

Pokusí se převést řetězcovou reprezentaci čísla verze na ekvivalentní Version objekt a vrátí hodnotu, která označuje, zda převod proběhl úspěšně.

Operátory

Equality(Version, Version)

Určuje, zda jsou dva zadané Version objekty stejné.

GreaterThan(Version, Version)

Určuje, zda je první zadaný Version objekt větší než druhý zadaný Version objekt.

GreaterThanOrEqual(Version, Version)

Určuje, zda je první zadaný Version objekt větší nebo roven druhému zadanému Version objektu.

Inequality(Version, Version)

Určuje, zda se dva zadané Version objekty nerovnají.

LessThan(Version, Version)

Určuje, zda je první zadaný Version objekt menší než druhý zadaný Version objekt.

LessThanOrEqual(Version, Version)

Určuje, zda je první zadaný Version objekt menší nebo roven druhému Version objektu.

Explicitní implementace rozhraní

IComparable.CompareTo(Object)

Porovná aktuální Version objekt se zadaným objektem a vrátí indikaci jejich relativních hodnot.

IFormattable.ToString(String, IFormatProvider)

Formátuje hodnotu aktuální instance pomocí zadaného formátu.

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

Pokusí se naformátovat hodnotu aktuální instance do zadaného rozsahu znaků.

Platí pro