Version Clase

Definición

Representa el número de versión de un ensamblado, un sistema operativo o Common Language Runtime. Esta clase no puede heredarse.

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
Herencia
Version
Atributos
Implementaciones

Ejemplos

En el ejemplo siguiente se usa el AssemblyVersionAttribute atributo para asignar un número de versión a un ensamblado. En tiempo de compilación, esta información de versión se almacena con los metadatos del ensamblado. En tiempo de ejecución, el ejemplo recupera el valor de la Type.Assembly propiedad en un tipo encontrado en el ensamblado para obtener una referencia al ensamblado en ejecución y recupera la información de versión del ensamblado de la Version propiedad del AssemblyName objeto devuelto por el Assembly.GetName método .

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.

Comentarios

La Version clase representa el número de versión de un ensamblado, un sistema operativo o Common Language Runtime. Los números de versión constan de dos a cuatro componentes: principal, secundario, compilación y revisión. Se requieren los componentes principales y secundarios; Los componentes de compilación y revisión son opcionales, pero el componente de compilación es necesario si se define el componente de revisión. Todos los componentes definidos deben ser enteros mayores o iguales que 0. El formato del número de versión es el siguiente (los componentes opcionales se muestran entre corchetes):

major. minor[.build[.revision]]

Los componentes se usan por convención de la siguiente manera:

  • Principal: los ensamblados con el mismo nombre pero diferentes versiones principales no son intercambiables. Un número de versión superior podría indicar una reescritura principal de un producto en el que no se puede asumir la compatibilidad con versiones anteriores.

  • Menor: si el nombre y el número de versión principal en dos ensambles son los mismos, pero el número de versión menor es diferente, esto indica una mejora significativa destinada a mantener la compatibilidad con versiones anteriores. Este número de versión secundaria superior podría indicar una versión puntual de un producto o una nueva versión totalmente compatible con versiones anteriores de un producto.

  • Compilación: una diferencia en el número de compilación representa una recompilación del mismo origen. Es posible que se usen números de compilación diferentes cuando cambia el procesador, la plataforma o el compilador.

  • Revisión: Los ensamblados con el mismo nombre, los mismos números de versión principal y secundaria pero diferentes revisiones están diseñados para ser totalmente intercambiables. Es posible que se use un número de revisión mayor en una compilación que corrija un agujero de seguridad en un ensamblado liberado previamente.

Las versiones posteriores de un ensamblado que solo difieren en los números de compilación o revisión se consideran actualizaciones tipo Hotfix de la versión anterior.

Importante

El valor de las propiedades Version que no se han asignado explícitamente a un valor es indefinido (-1).

Las MajorRevision propiedades y MinorRevision permiten identificar una versión temporal de la aplicación que, por ejemplo, corrige un problema hasta que pueda liberar una solución permanente. Además, el sistema operativo Windows NT usa la MajorRevision propiedad para codificar el número del Service Pack.

Asignar la información de versión a los ensamblados

Normalmente, la Version clase no se usa para asignar un número de versión a un ensamblado. En su lugar, la clase se usa para definir la AssemblyVersionAttribute versión de un ensamblado, como se muestra en el ejemplo de este artículo.

Recuperar información de versión

Version Los objetos se usan con más frecuencia para almacenar información de versión sobre algún componente del sistema o de la aplicación (como el sistema operativo), Common Language Runtime, el ejecutable de la aplicación actual o un ensamblado determinado. En los ejemplos siguientes se muestran algunos de los escenarios más comunes:

  • Recuperar la versión del sistema operativo. En el ejemplo siguiente se usa la OperatingSystem.Version propiedad para recuperar el número de versión 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())
    
  • Recuperación de la versión del Common Language Runtime. En el ejemplo siguiente se usa la Environment.Version propiedad para recuperar información de versión sobre 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())
    
  • Recuperación de la versión del ensamblado de la aplicación actual. En el ejemplo siguiente se usa el Assembly.GetEntryAssembly método para obtener una referencia a un Assembly objeto que representa el ejecutable de la aplicación y, a continuación, recupera su número de versión de ensamblado.

    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 Module
    
  • Recuperación de la versión del ensamblado actual. En el ejemplo siguiente se usa la Type.Assembly propiedad para obtener una referencia a un Assembly objeto que representa el ensamblado que contiene el punto de entrada de la aplicación y, a continuación, recupera su información de versión.

    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
    

Comparar objetos de versión

Puede usar el CompareTo método para determinar si un Version objeto es anterior a, igual que o posterior a un segundo Version objeto. En el ejemplo siguiente se indica que la versión 2.1 es posterior a la versión 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.

Para que dos versiones sean iguales, los números principales, secundarios, de compilación y de revisión del primer Version objeto deben ser idénticos a los del segundo Version objeto. Si el número de compilación o revisión de un Version objeto no está definido, ese Version objeto se considera anterior a un Version objeto cuyo número de compilación o revisión es igual a cero. En el ejemplo siguiente se muestra esto comparando tres Version objetos que tienen componentes de versión no definidos.

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

Constructores

Nombre Description
Version()

Inicializa una nueva instancia de la clase Version.

Version(Int32, Int32, Int32, Int32)

Inicializa una nueva instancia de la Version clase con los números de revisión, compilación y principal especificados.

Version(Int32, Int32, Int32)

Inicializa una nueva instancia de la Version clase utilizando los valores de compilación, secundaria y principal especificados.

Version(Int32, Int32)

Inicializa una nueva instancia de la Version clase utilizando los valores principales y secundarios especificados.

Version(String)

Inicializa una nueva instancia de la Version clase utilizando la cadena especificada.

Propiedades

Nombre Description
Build

Obtiene el valor del componente de compilación del número de versión del objeto actual Version .

Major

Obtiene el valor del componente principal del número de versión del objeto actual Version .

MajorRevision

Obtiene los 16 bits altos del número de revisión.

Minor

Obtiene el valor del componente secundario del número de versión del objeto actual Version .

MinorRevision

Obtiene los 16 bits bajos del número de revisión.

Revision

Obtiene el valor del componente de revisión del número de versión del objeto actual Version .

Métodos

Nombre Description
Clone()

Devuelve un nuevo Version objeto cuyo valor es el mismo que el objeto actual Version .

CompareTo(Object)

Compara el objeto actual Version con un objeto especificado y devuelve una indicación de sus valores relativos.

CompareTo(Version)

Compara el objeto actual Version con un objeto especificado Version y devuelve una indicación de sus valores relativos.

Equals(Object)

Devuelve un valor que indica si el objeto actual Version es igual a un objeto especificado.

Equals(Version)

Devuelve un valor que indica si el objeto actual Version y un objeto especificado Version representan el mismo valor.

GetHashCode()

Devuelve un código hash para el objeto actual Version .

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
Parse(ReadOnlySpan<Byte>)

Convierte el intervalo de solo lectura especificado de caracteres UTF-8 que representa un número de versión en un objeto Version equivalente.

Parse(ReadOnlySpan<Char>)

Convierte el intervalo de caracteres de solo lectura especificado que representa un número de versión en un objeto equivalente Version .

Parse(String)

Convierte la representación de cadena de un número de versión en un objeto equivalente Version .

ToString()

Convierte el valor del objeto actual Version en su representación equivalente String .

ToString(Int32)

Convierte el valor del objeto actual Version en su representación equivalente String . Un recuento especificado indica el número de componentes que se van a devolver.

TryFormat(Span<Byte>, Int32, Int32)

Intenta dar formato a esta instancia de versión en un intervalo de bytes.

TryFormat(Span<Byte>, Int32)

Intenta dar formato a esta instancia de versión en un intervalo de bytes.

TryFormat(Span<Char>, Int32, Int32)

Intenta dar formato a esta instancia de versión en un intervalo de caracteres.

TryFormat(Span<Char>, Int32)

Intenta dar formato a esta instancia de versión en un intervalo de caracteres.

TryParse(ReadOnlySpan<Byte>, Version)

Intenta convertir la representación UTF-8 de un número de versión en un objeto Version equivalente y devuelve un valor que indica si la conversión se realizó correctamente.

TryParse(ReadOnlySpan<Char>, Version)

Intenta convertir el intervalo de caracteres de solo lectura especificado que representa un número de versión en un objeto equivalente Version y devuelve un valor que indica si la conversión se realizó correctamente.

TryParse(String, Version)

Intenta convertir la representación de cadena de un número de versión en un objeto equivalente Version y devuelve un valor que indica si la conversión se realizó correctamente.

Operadores

Nombre Description
Equality(Version, Version)

Determina si dos objetos especificados Version son iguales.

GreaterThan(Version, Version)

Determina si el primer objeto especificado Version es mayor que el segundo objeto especificado Version .

GreaterThanOrEqual(Version, Version)

Determina si el primer objeto especificado Version es mayor o igual que el segundo objeto especificado Version .

Inequality(Version, Version)

Determina si dos objetos especificados Version no son iguales.

LessThan(Version, Version)

Determina si el primer objeto especificado Version es menor que el segundo objeto especificado Version .

LessThanOrEqual(Version, Version)

Determina si el primer objeto especificado Version es menor o igual que el segundo Version objeto.

Implementaciones de interfaz explícitas

Nombre Description
IComparable.CompareTo(Object)

Compara el objeto actual Version con un objeto especificado y devuelve una indicación de sus valores relativos.

IFormattable.ToString(String, IFormatProvider)

Da formato al valor de la instancia actual mediante el formato especificado.

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

Intenta dar formato al valor de la instancia actual en el intervalo de caracteres proporcionado.

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

Intenta dar formato al valor de la instancia actual como UTF-8 en el intervalo de bytes proporcionado.

IUtf8SpanParsable<Version>.Parse(ReadOnlySpan<Byte>, IFormatProvider)

Representa el número de versión de un ensamblado, un sistema operativo o Common Language Runtime. Esta clase no puede heredarse.

IUtf8SpanParsable<Version>.TryParse(ReadOnlySpan<Byte>, IFormatProvider, Version)

Representa el número de versión de un ensamblado, un sistema operativo o Common Language Runtime. Esta clase no puede heredarse.

Se aplica a