Version Version Version Version Class

Definición

Representa el número de versión de un ensamblado, sistema operativo o Common Language Runtime.Represents the version number of an assembly, operating system, or the common language runtime. Esta clase no puede heredarse.This class cannot be inherited.

public ref class Version sealed : ICloneable, IComparable, IComparable<Version ^>, IEquatable<Version ^>
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public sealed class Version : ICloneable, IComparable, IComparable<Version>, IEquatable<Version>
type Version = class
    interface ICloneable
    interface IComparable
    interface IComparable<Version>
    interface IEquatable<Version>
Public NotInheritable Class Version
Implements ICloneable, IComparable, IComparable(Of Version), IEquatable(Of Version)
Herencia
VersionVersionVersionVersion
Atributos
Implementaciones

Ejemplos

En el ejemplo siguiente se usa el AssemblyVersionAttribute atributo para asignar un número de versión a un ensamblado.The following example uses the AssemblyVersionAttribute attribute to assign a version number to an assembly. En tiempo de compilación, esta información de versión se almacena con los metadatos del ensamblado.At compile time, this version information is stored with the assembly's metadata. En tiempo de ejecución, el ejemplo recupera el valor de la Type.Assembly propiedad en un tipo que se encuentra en el ensamblado para obtener una referencia al ensamblado que se ejecuta y recupera información de versión del ensamblado desde el Version propiedad de la AssemblyName objeto devuelto por la Assembly.GetName método.At run time, the example retrieves the value of the Type.Assembly property on a type found in the assembly to get a reference to the executing assembly, and it retrieves the assembly's version information from the Version property of the AssemblyName object returned by the Assembly.GetName method.

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

Comentarios

Números de versión constan de dos a cuatro componentes: principal, secundaria, compilación y revisión.Version numbers consist of two to four components: major, minor, build, and revision. Los componentes principales y secundarias son necesarios; los componentes de compilación y revisión son opcionales, pero el componente de compilación es necesario si se ha definido el componente de revisión.The major and minor components are required; the build and revision components are optional, but the build component is required if the revision component is defined. Todos los componentes definidos deben ser enteros mayores o iguales que 0.All defined components must be integers greater than or equal to 0. El formato del número de versión es como sigue (se muestran los componentes opcionales en los corchetes ([y]):The format of the version number is as follows (optional components are shown in square brackets ([ and ]):

principales. menores[. compilar[. revisión]]major.minor[.build[.revision]]

Los componentes se usan por convención, como sigue:The components are used by convention as follows:

  • Principales: Los ensamblados con el mismo nombre pero con diferentes versiones principales no son intercambiables.Major: Assemblies with the same name but different major versions are not interchangeable. Un mayor número de versión podría indicar una gran reelaboración de un producto que no se puede suponer la compatibilidad con versiones anteriores.A higher version number might indicate a major rewrite of a product where backward compatibility cannot be assumed.

  • Menores: Si el nombre y el número de versión principal de dos ensamblados son los mismos, pero el número de versión secundaria es diferente, esto indica una mejora significativa con la intención de compatibilidad con versiones anteriores.Minor: If the name and major version number on two assemblies are the same, but the minor version number is different, this indicates significant enhancement with the intention of backward compatibility. Este número de versión secundaria más alto podría indicar una versión de punto de un producto o una versión nueva totalmente compatible con versiones anteriores de un producto.This higher minor version number might indicate a point release of a product or a fully backward-compatible new version of a product.

  • Compilación: Una diferencia en el número de compilación representa una recompilación del mismo origen.Build: A difference in build number represents a recompilation of the same source. Cuando el procesador, plataforma o compilador cambia, se pueden usar números de compilación diferentes.Different build numbers might be used when the processor, platform, or compiler changes.

  • Revisión: Los ensamblados con el mismo nombre, principales y secundarias de números de versión pero revisiones diferentes están pensadas para ser completamente intercambiables.Revision: Assemblies with the same name, major, and minor version numbers but different revisions are intended to be fully interchangeable. Un mayor número de revisión podría utilizarse en una compilación que corrige una vulnerabilidad de seguridad en un ensamblado publicada anteriormente.A higher revision number might be used in a build that fixes a security hole in a previously released assembly.

Las versiones posteriores de un ensamblado que difieran solo por números de compilación y revisión se consideran como actualizaciones de revisiones de la versión anterior.Subsequent versions of an assembly that differ only by build or revision numbers are considered to be Hotfix updates of the prior version.

Importante

El valor de Version propiedades que no asignadas explícitamente un valor es indefinido (-1).The value of Version properties that have not been explicitly assigned a value is undefined (-1).

A partir de .NET Framework 2.0, el MajorRevision y MinorRevision propiedades le permiten identificar una versión temporal de la aplicación que, por ejemplo, corrige un problema hasta que pueda lanzar una solución permanente.Starting with .NET Framework 2.0, the MajorRevision and MinorRevision properties enable you to identify a temporary version of your application that, for example, corrects a problem until you can release a permanent solution. Además, el sistema operativo Windows NT usa el MajorRevision propiedad para codificar el número de service pack.Furthermore, the Windows NT operating system uses the MajorRevision property to encode the service pack number.

Asignar la información de versión a los ensambladosAssigning Version Information to Assemblies

Normalmente, el Version clase no se usa para asignar un número de versión a un ensamblado.Ordinarily, the Version class is not used to assign a version number to an assembly. En su lugar, el AssemblyVersionAttribute clase se utiliza para definir la versión de un ensamblado, como se muestra en el ejemplo de este tema.Instead, the AssemblyVersionAttribute class is used to define an assembly's version, as illustrated by the example in this topic.

Al recuperar la información de versiónRetrieving Version Information

Version los objetos se usan con más frecuencia para almacenar información de versión sobre algún componente del sistema o aplicación (por ejemplo, el sistema operativo), common language runtime, el ejecutable de la aplicación actual o un ensamblado determinado.Version objects are most frequently used to store version information about some system or application component (such as the operating system), the common language runtime, the current application's executable, or a particular assembly. Los ejemplos siguientes muestran algunos de los escenarios más comunes:The following examples illustrate some of the most common scenarios:

  • Recuperar la versión del sistema operativo.Retrieving the operating system version. En el ejemplo siguiente se usa el OperatingSystem.Version propiedad para recuperar el número de versión del sistema operativo.The following example uses the OperatingSystem.Version property to retrieve the version number of the operating system.

    // 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.
    Dim os As OperatingSystem = Environment.OSVersion
    Dim ver As Version = os.Version
    Console.WriteLine("Operating System: {0} ({1})", os.VersionString, ver.ToString())
    
  • Recuperar la versión de common language runtime.Retrieving the version of the common language runtime. En el ejemplo siguiente se usa el Environment.Version propiedad que se va a recuperar la información de versión de common language runtime.The following example uses the Environment.Version property to retrieve version information about the 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.
    Dim ver As Version = Environment.Version
    Console.WriteLine("CLR Version {0}", ver.ToString())
    
  • Recuperar la versión de ensamblado de la aplicación actual.Retrieving the current application's assembly version. En el ejemplo siguiente se usa el Assembly.GetEntryAssembly método para obtener una referencia a un Assembly objeto que representa la aplicación ejecutable y, a continuación, recupera su número de versión del ensamblado.The following example uses the Assembly.GetEntryAssembly method to obtain a reference to an Assembly object that represents the application executable and then retrieves its assembly version number.

    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());
       }
    }
    
    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
    
  • Recuperar la versión del ensamblado del ensamblado actual.Retrieving the current assembly's assembly version. En el ejemplo siguiente se usa el 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.The following example uses the Type.Assembly property to obtain a reference to an Assembly object that represents the assembly that contains the application entry point, and then retrieves its version information.

    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());
       }
    }
    
    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
    
  • Recuperar la versión de un ensamblado específico.Retrieving the version of a specific assembly. En el ejemplo siguiente se usa el Assembly.ReflectionOnlyLoadFrom método para obtener una referencia a un Assembly objeto que tiene un nombre de archivo en particular y, a continuación, recupera su información de versión.The following example uses the Assembly.ReflectionOnlyLoadFrom method to obtain a reference to an Assembly object that has a particular file name, and then retrieves its version information. Tenga en cuenta que también existen otros métodos para crear una instancia de un Assembly objeto por nombre de archivo o por nombre seguro.Note that several other methods also exist to instantiate an Assembly object by file name or by strong name.

    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());
       }
    }
    
    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
    
  • Recuperar la versión de publicación de una aplicación ClickOnce.Retrieving the Publish Version of a ClickOnce application. En el ejemplo siguiente se usa el ApplicationDeployment.CurrentVersion propiedad para mostrar la versión de publicación de la aplicación.The following example uses the ApplicationDeployment.CurrentVersion property to display an application's Publish Version. Tenga en cuenta que su ejecución correcta requiere la identidad de aplicación del ejemplo debe establecerse.Note that its successful execution requires the example's application identity to be set. Esto se controla automáticamente el Asistente de publicación de Visual Studio.This is handled automatically by the Visual Studio Publish Wizard.

    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
    

    Importante

    La versión de publicación de una aplicación para la implementación de ClickOnce es completamente independiente de su versión de ensamblado.The Publish Version of an application for ClickOnce deployment is completely independent of its assembly version.

Comparar objetos de versiónComparing Version Objects

Puede usar el CompareTo método para determinar si un Version objeto es anterior, igual o posterior al segundo Version objeto.You can use the CompareTo method to determine whether one Version object is earlier than, the same as, or later than a second Version object. En el ejemplo siguiente se indica que la versión 2.1 es posterior a la versión 2.0.The following example indicates that Version 2.1 is later than Version 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.
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 las dos versiones son iguales, la principal, secundaria, compilación y los números de revisión de la primera Version objeto debe ser idéntico a los del segundo Version objeto.For two versions to be equal, the major, minor, build, and revision numbers of the first Version object must be identical to those of the second Version object. Si el número de compilación y revisión de un Version no está definido, el objeto que Version se considera el objeto debe ser anterior a un Version objeto cuya compilación o el número de revisión es igual a cero.If the build or revision number of a Version object is undefined, that Version object is considered to be earlier than a Version object whose build or revision number is equal to zero. El siguiente ejemplo ilustra esto mediante la comparación de tres Version objetos que han sin definir componentes de la versión.The following example illustrates this by comparing three Version objects that have undefined version components.

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

Constructores

Version() Version() Version() Version()

Inicializa una nueva instancia de la clase Version.Initializes a new instance of the Version class.

Version(Int32, Int32) Version(Int32, Int32) Version(Int32, Int32) Version(Int32, Int32)

Inicializa una nueva instancia de la clase Version utilizando los valores principal y secundario especificados.Initializes a new instance of the Version class using the specified major and minor values.

Version(Int32, Int32, Int32) Version(Int32, Int32, Int32) Version(Int32, Int32, Int32) Version(Int32, Int32, Int32)

Inicializa una nueva instancia de la clase Version utilizando los valores principal, secundario y de compilación especificados.Initializes a new instance of the Version class using the specified major, minor, and build values.

Version(Int32, Int32, Int32, Int32) Version(Int32, Int32, Int32, Int32) Version(Int32, Int32, Int32, Int32) Version(Int32, Int32, Int32, Int32)

Inicializa una nueva instancia de la clase Version con los números principal, secundario, de compilación y revisión especificados.Initializes a new instance of the Version class with the specified major, minor, build, and revision numbers.

Version(String) Version(String) Version(String) Version(String)

Inicializa una nueva instancia de la clase Version con la cadena especificada.Initializes a new instance of the Version class using the specified string.

Propiedades

Build Build Build Build

Obtiene el valor del componente de compilación del número de versión del objeto Version actual.Gets the value of the build component of the version number for the current Version object.

Major Major Major Major

Obtiene el valor del componente principal del número de versión del objeto Version actual.Gets the value of the major component of the version number for the current Version object.

MajorRevision MajorRevision MajorRevision MajorRevision

Obtiene los 16 bits superiores del número de revisión.Gets the high 16 bits of the revision number.

Minor Minor Minor Minor

Obtiene el valor del componente secundario del número de versión del objeto Version actual.Gets the value of the minor component of the version number for the current Version object.

MinorRevision MinorRevision MinorRevision MinorRevision

Obtiene los 16 bits inferiores del número de revisión.Gets the low 16 bits of the revision number.

Revision Revision Revision Revision

Obtiene el valor del componente de revisión del número de versión del objeto Version actual.Gets the value of the revision component of the version number for the current Version object.

Métodos

Clone() Clone() Clone() Clone()

Devuelve un nuevo objeto Version cuyo valor es igual al del objeto Version actual.Returns a new Version object whose value is the same as the current Version object.

CompareTo(Object) CompareTo(Object) CompareTo(Object) CompareTo(Object)

Compara el objeto Version actual con un objeto especificado y devuelve una indicación de los valores relativos.Compares the current Version object to a specified object and returns an indication of their relative values.

CompareTo(Version) CompareTo(Version) CompareTo(Version) CompareTo(Version)

Compara el objeto Version actual con un objeto Version especificado y devuelve una indicación de los valores relativos.Compares the current Version object to a specified Version object and returns an indication of their relative values.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Devuelve un valor que indica si el objeto Version actual es igual a un objeto especificado.Returns a value indicating whether the current Version object is equal to a specified object.

Equals(Version) Equals(Version) Equals(Version) Equals(Version)

Devuelve un valor que indica si el objeto Version actual y un objeto Version especificado representan el mismo valor.Returns a value indicating whether the current Version object and a specified Version object represent the same value.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Devuelve un código hash para el objeto Version actual.Returns a hash code for the current Version object.

GetType() GetType() GetType() GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficial del Object actual.Creates a shallow copy of the current Object.

(Inherited from Object)
Parse(ReadOnlySpan<Char>) Parse(ReadOnlySpan<Char>) Parse(ReadOnlySpan<Char>) Parse(ReadOnlySpan<Char>)
Parse(String) Parse(String) Parse(String) Parse(String)

Convierte la representación de cadena de un número de versión en un objeto Version equivalente.Converts the string representation of a version number to an equivalent Version object.

ToString() ToString() ToString() ToString()

Convierte el valor del objeto Version actual en su representación String equivalente.Converts the value of the current Version object to its equivalent String representation.

ToString(Int32) ToString(Int32) ToString(Int32) ToString(Int32)

Convierte el valor del objeto Version actual en su representación String equivalente.Converts the value of the current Version object to its equivalent String representation. Un recuento especificado indica el número de componente que se va a devolver.A specified count indicates the number of components to return.

TryFormat(Span<Char>, Int32) TryFormat(Span<Char>, Int32) TryFormat(Span<Char>, Int32) TryFormat(Span<Char>, Int32)
TryFormat(Span<Char>, Int32, Int32) TryFormat(Span<Char>, Int32, Int32) TryFormat(Span<Char>, Int32, Int32) TryFormat(Span<Char>, Int32, Int32)
TryParse(ReadOnlySpan<Char>, Version) TryParse(ReadOnlySpan<Char>, Version) TryParse(ReadOnlySpan<Char>, Version) TryParse(ReadOnlySpan<Char>, Version)
TryParse(String, Version) TryParse(String, Version) TryParse(String, Version) TryParse(String, Version)

Intenta convertir la representación de cadena 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 o no.Tries to convert the string representation of a version number to an equivalent Version object, and returns a value that indicates whether the conversion succeeded.

Operadores

Equality(Version, Version) Equality(Version, Version) Equality(Version, Version) Equality(Version, Version)

Determina si dos objetos Version especificados son iguales.Determines whether two specified Version objects are equal.

GreaterThan(Version, Version) GreaterThan(Version, Version) GreaterThan(Version, Version) GreaterThan(Version, Version)

Determina si el primer objeto Version especificado es mayor que el segundo objeto Version especificado.Determines whether the first specified Version object is greater than the second specified Version object.

GreaterThanOrEqual(Version, Version) GreaterThanOrEqual(Version, Version) GreaterThanOrEqual(Version, Version) GreaterThanOrEqual(Version, Version)

Determina si el primer objeto Version especificado es mayor o igual que el segundo objeto Version especificado.Determines whether the first specified Version object is greater than or equal to the second specified Version object.

Inequality(Version, Version) Inequality(Version, Version) Inequality(Version, Version) Inequality(Version, Version)

Determina si dos objetos Version especificados no son iguales.Determines whether two specified Version objects are not equal.

LessThan(Version, Version) LessThan(Version, Version) LessThan(Version, Version) LessThan(Version, Version)

Determina si el primer objeto Version especificado es menor que el segundo objeto Version especificado.Determines whether the first specified Version object is less than the second specified Version object.

LessThanOrEqual(Version, Version) LessThanOrEqual(Version, Version) LessThanOrEqual(Version, Version) LessThanOrEqual(Version, Version)

Determina si el primer objeto Version especificado es menor o igual que el segundo objeto Version.Determines whether the first specified Version object is less than or equal to the second Version object.

Implementaciones de interfaz explícitas

IComparable.CompareTo(Object) IComparable.CompareTo(Object) IComparable.CompareTo(Object) IComparable.CompareTo(Object)

Se aplica a