Version Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje číslo verze sestavení, operačního systému nebo modulu CLR (Common Language Runtime). Tato třída se nemůže dědit.
public ref class Version sealed : IComparable, IComparable<Version ^>, IEquatable<Version ^>
public ref class Version sealed : ICloneable, IComparable, IComparable<Version ^>, IEquatable<Version ^>, ISpanFormattable, IUtf8SpanFormattable, IUtf8SpanParsable<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, IComparable<Version ^>, IEquatable<Version ^>, ISpanFormattable, IUtf8SpanFormattable
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>, ISpanFormattable, IUtf8SpanFormattable, IUtf8SpanParsable<Version>
public sealed class Version : ICloneable, IComparable, IComparable<Version>, IEquatable<Version>
public sealed class Version : ICloneable, IComparable, IComparable<Version>, IEquatable<Version>, ISpanFormattable
public sealed class Version : ICloneable, IComparable, IComparable<Version>, IEquatable<Version>, ISpanFormattable, IUtf8SpanFormattable
[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>
interface IFormattable
interface ISpanFormattable
interface IUtf8SpanFormattable
interface IUtf8SpanParsable<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 ICloneable
interface IComparable
interface IComparable<Version>
interface IEquatable<Version>
interface IFormattable
interface ISpanFormattable
interface IUtf8SpanFormattable
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), ISpanFormattable, IUtf8SpanFormattable, IUtf8SpanParsable(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, IComparable(Of Version), IEquatable(Of Version), ISpanFormattable, IUtf8SpanFormattable
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í získat odkaz na spuštěné sestavení a načte informace o verzi sestavení z Version vlastnosti AssemblyName objektu vráceného metodou 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 MExample1
Public Sub Main()
Dim thisAssem As Assembly = Assembly.GetExecutingAssembly()
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
Třída Version představuje číslo verze sestavení, operačního systému nebo modulu CLR (Common Language Runtime). Čísla verzí se skládají ze dvou až čtyř součástí: hlavní, vedlejší, sestavení a revize. Jsou vyžadovány hlavní a vedlejší součásti; součásti sestavení a revize jsou volitelné, ale pokud je definována komponenta revize, je vyžadována komponenta sestavení. Všechny definované komponenty musí být celé číslo větší nebo rovno 0. Formát čísla verze je následující (volitelné součásti jsou uvedeny v hranatých závorkách):
hlavní.menší[.sestavení[.revize]]
Komponenty se používají konvencí následujícím způsobem:
hlavní: Sestavení se stejným názvem, ale různé hlavní verze nejsou zaměnitelné. Vyšší číslo verze může znamenat hlavní přepsání produktu, u kterého nelze předpokládat zpětnou kompatibilitu.
podverzePokud název a číslo hlavní verze na dvou sestaveních jsou stejné, ale číslo podverze se liší, znamená to významné vylepšení s cílem zajistit zpětnou kompatibilitu. 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 překompilaci stejného zdrojového kódu. Různá čísla sestavení se můžou použít při změně procesoru, platformy nebo kompilátoru.
Revize: Sestavení se stejným názvem, hlavním číslem verze a vedlejšími čísly verze, ale s různými revizemi, mají být plně zaměnitelné. Vyšší číslo revize se může použít v buildu, který opravuje bezpečnostní díru v dříve vydaném sestavení.
Další verze sestavení, které se liší pouze čísly sestavení nebo revize jsou považovány za aktualizace hotfix předchozí verze.
Important
Hodnota Version vlastností, které nebyly explicitně přiřazeny, není definována (-1).
Vlastnosti MajorRevision a MinorRevision umožňují identifikovat dočasnou verzi aplikace, která například opraví problém, dokud nebudete moct uvolnit trvalé řešení. Kromě toho operační systém Windows NT používá vlastnost MajorRevision k zakódování čísla Service Pack.
Přiřazení informací o verzi sestavám
Obvykle se Version třída nepoužívá k přiřazení čísla verze sestavení. Místo toho se AssemblyVersionAttribute třída používá k definování verze sestavení, jak je znázorněno v příkladu v tomto článku.
Načtěte informace o verzi
Version objekty se nejčastěji používají k ukládání informací o verzi některých součástí systému nebo aplikace (například operačního systému), modulu CLR (Common Language Runtime), spustitelného souboru aktuální aplikace nebo konkrétní 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á vlastnost OperatingSystem.Version 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: {os.VersionString} ({ver})");// 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 Common Language Runtime. Následující příklad používá vlastnost Environment.Version 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 {ver}");// 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á Assembly.GetEntryAssembly metodu ke získání odkazu na Assembly objekt, reprezentující spustitelný soubor aplikace, a potom načte jeho verzi sestavení.
using System; using System.Reflection; public class Example4 { 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 Example3 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 ModuleNačtení aktuální verze sestavení. Následující příklad používá vlastnost Type.Assembly k získání odkazu na Assembly objekt, který představuje dané sestavení obsahující vstupní bod aplikace, a poté získá informace o jeho verzi.
using System; using System.Reflection; public class Example3 { public static void Main() { // Get the version of the current assembly. Assembly assem = typeof(Example3).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 Example1 Public Sub Main() ' Get the version of the current assembly. Dim assem As Assembly = Assembly.GetExecutingAssembly() 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
Porovnání objektů verzí
Metodu CompareTo můžete použít k určení, zda je jeden objekt Version dřívější než, 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(2, 0);
Version v2 = new("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 {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é, musí být čísla hlavní, vedlejší, sestavení a revizí prvního objektu Version shodná s čísly druhého objektu Version. Pokud číslo sestavení nebo revize objektu Version není definováno, považuje se Version objekt za dřívější než Version objekt, 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 Example2
{
public static void Main()
{
Version v1 = new(1, 1);
Version v1a = new("1.1.0");
ShowRelationship(v1, v1a);
Version v1b = new(1, 1, 0, 0);
ShowRelationship(v1b, v1a);
}
private static void ShowRelationship(Version v1, Version v2)
{
Console.WriteLine($"Relationship of {v1} to {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 Example2
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
| Name | Description |
|---|---|
| Version() |
Inicializuje novou instanci Version třídy. |
| Version(Int32, Int32, Int32, Int32) |
Inicializuje novou instanci Version třídy se zadaným hlavním, vedlejším, buildem a čísly revizí. |
| Version(Int32, Int32, Int32) |
Inicializuje novou instanci Version třídy pomocí zadané hlavní, podverze a hodnoty sestavení. |
| Version(Int32, Int32) |
Inicializuje novou instanci Version třídy pomocí zadaných hlavních a vedlejších hodnot. |
| Version(String) |
Inicializuje novou instanci Version třídy pomocí zadaného řetězce. |
Vlastnosti
| Name | Description |
|---|---|
| Build |
Získá hodnotu součásti sestavení číslo verze pro aktuální Version objekt. |
| Major |
Získá hodnotu hlavní součásti číslo verze pro aktuální Version objekt. |
| MajorRevision |
Získá vysoké 16 bitů čísla revize. |
| Minor |
Získá hodnotu podverze číslo verze pro aktuální Version objekt. |
| MinorRevision |
Získá nízké 16 bitů čísla revize. |
| Revision |
Získá hodnotu revizní součásti číslo verze pro aktuální Version objekt. |
Metody
| Name | Description |
|---|---|
| Clone() |
Vrátí nový Version objekt, jehož hodnota je stejná jako aktuální Version objekt. |
| CompareTo(Object) |
Porovná aktuální Version objekt se zadaným objektem a vrátí indikaci jejich relativních hodnot. |
| CompareTo(Version) |
Porovná aktuální Version objekt se 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 pro aktuální Version objekt. |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| Parse(ReadOnlySpan<Byte>) |
Převede zadaný rozsah jen pro čtení znaků UTF-8, který představuje číslo verze na ekvivalentní objekt Verze. |
| Parse(ReadOnlySpan<Char>) |
Převede zadané rozsahy znaků jen pro čtení, které představují čí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 komponent, které se mají vrátit. |
| TryFormat(Span<Byte>, Int32, Int32) |
Snaží se naformátovat tuto instanci verze do rozsahu bajtů. |
| TryFormat(Span<Byte>, Int32) |
Snaží se naformátovat tuto instanci verze do rozsahu bajtů. |
| TryFormat(Span<Char>, Int32, Int32) |
Pokusí se tuto instanci verze naformátovat do rozsahu znaků. |
| TryFormat(Span<Char>, Int32) |
Pokusí se tuto instanci verze naformátovat do rozsahu znaků. |
| TryParse(ReadOnlySpan<Byte>, Version) |
Pokusí se převést UTF-8 reprezentaci čísla verze na ekvivalentní version objekt a vrátí hodnotu, která označuje, zda převod byl úspěšný. |
| TryParse(ReadOnlySpan<Char>, Version) |
Pokusí se převést zadané rozsahy znaků, které představují čí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
| Name | Description |
|---|---|
| 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 jsou dva zadané Version objekty nerovny. |
| 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í
| Name | Description |
|---|---|
| IComparable.CompareTo(Object) |
Porovná aktuální Version objekt se zadaným objektem a vrátí indikaci jejich relativních hodnot. |
| IFormattable.ToString(String, IFormatProvider) |
Naformá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ů. |
| IUtf8SpanFormattable.TryFormat(Span<Byte>, Int32, ReadOnlySpan<Char>, IFormatProvider) |
Pokusí se naformátovat hodnotu aktuální instance jako UTF-8 do poskytnutého rozsahu bajtů. |
| IUtf8SpanParsable<Version>.Parse(ReadOnlySpan<Byte>, IFormatProvider) |
Představuje číslo verze sestavení, operačního systému nebo modulu CLR (Common Language Runtime). Tato třída se nemůže dědit. |
| IUtf8SpanParsable<Version>.TryParse(ReadOnlySpan<Byte>, IFormatProvider, Version) |
Představuje číslo verze sestavení, operačního systému nebo modulu CLR (Common Language Runtime). Tato třída se nemůže dědit. |