Version Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta il numero di versione di un assembly, di un sistema operativo o di Common Language Runtime. La classe non può essere ereditata.
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
- Ereditarietà
-
Version
- Attributi
- Implementazioni
Esempio
Nell'esempio seguente viene usato l'attributo AssemblyVersionAttribute per assegnare un numero di versione a un assembly. In fase di compilazione, queste informazioni sulla versione vengono archiviate con i metadati dell'assembly. In fase di esecuzione, l'esempio recupera il valore della Type.Assembly proprietà in un tipo trovato nell'assembly per ottenere un riferimento all'assembly in esecuzione e recupera le informazioni sulla versione dell'assembly dalla Version proprietà dell'oggetto AssemblyName restituito dal Assembly.GetName metodo .
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.
Commenti
La Version classe rappresenta il numero di versione di un assembly, di un sistema operativo o di Common Language Runtime. I numeri di versione sono costituiti da due a quattro componenti: maggiore, minore, build e revisione. Sono necessari i componenti principali e secondari; i componenti di compilazione e revisione sono facoltativi, ma il componente di compilazione è obbligatorio se il componente di revisione è definito. Tutti i componenti definiti devono essere numeri interi maggiori o uguali a 0. Il formato del numero di versione è il seguente (i componenti facoltativi sono visualizzati tra parentesi quadre):
maggiore.minore[.costruzione[.revisione]]
I componenti vengono usati per convenzione come segue:
Principale: gli assembly con lo stesso nome ma con versioni principali diverse non sono intercambiabili. Un numero di versione superiore potrebbe indicare una riscrittura principale di un prodotto in cui non è possibile presumere la compatibilità con le versioni precedenti.
Secondaria: se il nome e il numero di versione principale in due assembly sono uguali, ma il numero di versione secondaria è diverso, questo indica un miglioramento significativo con l'intenzione di compatibilità con le versioni precedenti. Questo numero di versione minore superiore potrebbe indicare una versione di rilascio intermedio di un prodotto o una nuova versione pienamente compatibile con le versioni precedenti dello stesso prodotto.
Build: una differenza nel numero di build rappresenta una ricompilazione della stessa origine. È possibile usare numeri di compilazione diversi quando il processore, la piattaforma o il compilatore cambia.
Revisione: gli assembly con lo stesso nome, numero di versione principale e secondaria, ma revisioni diverse sono progettati per essere completamente intercambiabili. Un numero di revisione superiore potrebbe essere usato in una compilazione che corregge un foro di sicurezza in un assembly rilasciato in precedenza.
Le versioni successive di un assembly che differiscono solo per il numero di compilazione o revisione vengono considerate aggiornamenti Hotfix della versione precedente.
Important
Il valore delle Version proprietà a cui non è stato assegnato in modo esplicito un valore non è definito (-1).
Le MajorRevision proprietà e MinorRevision consentono di identificare una versione temporanea dell'applicazione che, ad esempio, corregge un problema fino a quando non è possibile rilasciare una soluzione permanente. Inoltre, il sistema operativo Windows NT usa la MajorRevision proprietà per codificare il numero del Service Pack.
Assegnare informazioni sulla versione agli assembly
In genere, la Version classe non viene usata per assegnare un numero di versione a un assembly. La classe viene invece usata per definire la AssemblyVersionAttribute versione di un assembly, come illustrato nell'esempio in questo articolo.
Recuperare le informazioni sulla versione
Version gli oggetti vengono usati più di frequente per archiviare informazioni sulla versione su alcuni componenti di sistema o dell'applicazione (ad esempio il sistema operativo), Common Language Runtime, l'eseguibile dell'applicazione corrente o un particolare assembly. Gli esempi seguenti illustrano alcuni degli scenari più comuni:
Recupero della versione del sistema operativo. Nell'esempio seguente viene utilizzata la OperatingSystem.Version proprietà per recuperare il numero di versione del sistema operativo.
// 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())Recupero della versione di Common Language Runtime. Nell'esempio seguente viene utilizzata la Environment.Version proprietà per recuperare informazioni sulla versione relative a 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())Recupero della versione dell'assembly dell'applicazione corrente. Nell'esempio seguente viene utilizzato il Assembly.GetEntryAssembly metodo per ottenere un riferimento a un Assembly oggetto che rappresenta l'eseguibile dell'applicazione e quindi recupera il relativo numero di versione dell'assembly.
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 ModuleRecupero della versione dell'assembly corrente. Nell'esempio seguente viene utilizzata la Type.Assembly proprietà per ottenere un riferimento a un Assembly oggetto che rappresenta l'assembly che contiene il punto di ingresso dell'applicazione e quindi recupera le relative informazioni sulla versione.
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
Confrontare gli oggetti di versione
È possibile utilizzare il CompareTo metodo per determinare se un Version oggetto è precedente, uguale o successivo a un secondo Version oggetto. L'esempio seguente indica che la versione 2.1 è successiva alla versione 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.
Affinché due versioni siano uguali, i numeri principali, secondari, di compilazione e di revisione del primo Version oggetto devono essere identici a quelli del secondo Version oggetto. Se il numero di compilazione o revisione di un Version oggetto non è definito, tale Version oggetto viene considerato precedente a un Version oggetto il cui numero di compilazione o revisione è uguale a zero. Nell'esempio seguente viene illustrato il confronto di tre Version oggetti con componenti di versione non definiti.
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
Costruttori
| Nome | Descrizione |
|---|---|
| Version() |
Inizializza una nuova istanza della classe Version. |
| Version(Int32, Int32, Int32, Int32) |
Inizializza una nuova istanza della Version classe con i numeri principali, secondari, di compilazione e di revisione specificati. |
| Version(Int32, Int32, Int32) |
Inizializza una nuova istanza della Version classe utilizzando i valori principali, secondari e di compilazione specificati. |
| Version(Int32, Int32) |
Inizializza una nuova istanza della Version classe utilizzando i valori principali e secondari specificati. |
| Version(String) |
Inizializza una nuova istanza della Version classe utilizzando la stringa specificata. |
Proprietà
| Nome | Descrizione |
|---|---|
| Build |
Ottiene il valore del componente di compilazione del numero di versione per l'oggetto corrente Version . |
| Major |
Ottiene il valore del componente principale del numero di versione per l'oggetto corrente Version . |
| MajorRevision |
Ottiene i 16 bit alti del numero di revisione. |
| Minor |
Ottiene il valore del componente secondario del numero di versione per l'oggetto corrente Version . |
| MinorRevision |
Ottiene i 16 bit bassi del numero di revisione. |
| Revision |
Ottiene il valore del componente di revisione del numero di versione per l'oggetto corrente Version . |
Metodi
| Nome | Descrizione |
|---|---|
| Clone() |
Restituisce un nuovo Version oggetto il cui valore corrisponde all'oggetto corrente Version . |
| CompareTo(Object) |
Confronta l'oggetto corrente Version con un oggetto specificato e restituisce un'indicazione dei relativi valori. |
| CompareTo(Version) |
Confronta l'oggetto corrente Version con un oggetto specificato Version e restituisce un'indicazione dei relativi valori. |
| Equals(Object) |
Restituisce un valore che indica se l'oggetto corrente Version è uguale a un oggetto specificato. |
| Equals(Version) |
Restituisce un valore che indica se l'oggetto corrente Version e un oggetto specificato Version rappresentano lo stesso valore. |
| GetHashCode() |
Restituisce un codice hash per l'oggetto corrente Version . |
| GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| Parse(ReadOnlySpan<Byte>) |
Converte l'intervallo di sola lettura specificato di caratteri UTF-8 che rappresenta un numero di versione in un oggetto Version equivalente. |
| Parse(ReadOnlySpan<Char>) |
Converte l'intervallo di caratteri di sola lettura specificato che rappresenta un numero di versione in un oggetto equivalente Version . |
| Parse(String) |
Converte la rappresentazione di stringa di un numero di versione in un oggetto equivalente Version . |
| ToString() |
Converte il valore dell'oggetto corrente Version nella relativa rappresentazione equivalente String . |
| ToString(Int32) |
Converte il valore dell'oggetto corrente Version nella relativa rappresentazione equivalente String . Un conteggio specificato indica il numero di componenti da restituire. |
| TryFormat(Span<Byte>, Int32, Int32) |
Prova a formattare questa istanza di versione in un intervallo di byte. |
| TryFormat(Span<Byte>, Int32) |
Prova a formattare questa istanza di versione in un intervallo di byte. |
| TryFormat(Span<Char>, Int32, Int32) |
Prova a formattare questa istanza di versione in un intervallo di caratteri. |
| TryFormat(Span<Char>, Int32) |
Prova a formattare questa istanza di versione in un intervallo di caratteri. |
| TryParse(ReadOnlySpan<Byte>, Version) |
Tenta di convertire la rappresentazione UTF-8 di un numero di versione in un oggetto Version equivalente e restituisce un valore che indica se la conversione è riuscita. |
| TryParse(ReadOnlySpan<Char>, Version) |
Tenta di convertire l'intervallo di caratteri di sola lettura specificato che rappresenta un numero di versione in un oggetto equivalente Version e restituisce un valore che indica se la conversione ha avuto esito positivo. |
| TryParse(String, Version) |
Tenta di convertire la rappresentazione di stringa di un numero di versione in un oggetto equivalente Version e restituisce un valore che indica se la conversione è riuscita. |
Operatori
| Nome | Descrizione |
|---|---|
| Equality(Version, Version) |
Determina se due oggetti specificati Version sono uguali. |
| GreaterThan(Version, Version) |
Determina se il primo oggetto specificato Version è maggiore del secondo oggetto specificato Version . |
| GreaterThanOrEqual(Version, Version) |
Determina se il primo oggetto specificato Version è maggiore o uguale al secondo oggetto specificato Version . |
| Inequality(Version, Version) |
Determina se due oggetti specificati Version non sono uguali. |
| LessThan(Version, Version) |
Determina se il primo oggetto specificato Version è minore del secondo oggetto specificato Version . |
| LessThanOrEqual(Version, Version) |
Determina se il primo oggetto specificato Version è minore o uguale al secondo Version oggetto. |
Implementazioni dell'interfaccia esplicita
| Nome | Descrizione |
|---|---|
| IComparable.CompareTo(Object) |
Confronta l'oggetto corrente Version con un oggetto specificato e restituisce un'indicazione dei relativi valori. |
| IFormattable.ToString(String, IFormatProvider) |
Formatta il valore dell'istanza corrente utilizzando il formato specificato. |
| ISpanFormattable.TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider) |
Tenta di formattare il valore dell'istanza corrente nell'intervallo di caratteri specificato. |
| IUtf8SpanFormattable.TryFormat(Span<Byte>, Int32, ReadOnlySpan<Char>, IFormatProvider) |
Prova a formattare il valore dell'istanza corrente come UTF-8 nell'intervallo di byte specificato. |
| IUtf8SpanParsable<Version>.Parse(ReadOnlySpan<Byte>, IFormatProvider) |
Rappresenta il numero di versione di un assembly, di un sistema operativo o di Common Language Runtime. La classe non può essere ereditata. |
| IUtf8SpanParsable<Version>.TryParse(ReadOnlySpan<Byte>, IFormatProvider, Version) |
Rappresenta il numero di versione di un assembly, di un sistema operativo o di Common Language Runtime. La classe non può essere ereditata. |