Version Clase

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

Ejemplos

En el ejemplo siguiente se utiliza el atributo AssemblyVersionAttribute 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 propiedad Type.Assembly en un tipo que se encuentra en el ensamblado para obtener una referencia al ensamblado en ejecución y recupera la información de versión del ensamblado de la propiedad Version del objeto AssemblyName devuelto por 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

Los números de versión están compuestos de dos a cuatro componentes: principal, secundario, compilación y revisión.Version numbers consist of two to four components: major, minor, build, and revision. Los componentes principales y secundarios son obligatorios; 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.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 números 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 el siguiente (los componentes opcionales se muestran entre corchetes ([y]):The format of the version number is as follows (optional components are shown in square brackets ([ and ]):

principal. secundaria[. compilación[. revisión]]major.minor[.build[.revision]]

Los componentes se usan por Convención de la manera siguiente:The components are used by convention as follows:

  • Major: 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 número de versión mayor podría indicar una reescritura importante de un producto en el que no se puede asumir la compatibilidad con versiones anteriores.A higher version number might indicate a major rewrite of a product where backward compatibility cannot be assumed.

  • Minor: Si el nombre y el número de versión principal de dos ensamblados son iguales, 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 superior puede indicar una versión puntual de un producto o una nueva versión 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. Se pueden usar diferentes números de compilación cuando cambia el procesador, la plataforma o el compilador.Different build numbers might be used when the processor, platform, or compiler changes.

  • Revisión: los ensamblados con el mismo nombre, los números de versión principal y secundaria, pero las distintas revisiones, están diseñados para ser completamente intercambiables.Revision: Assemblies with the same name, major, and minor version numbers but different revisions are intended to be fully interchangeable. Se puede usar un número de revisión mayor en una compilación que corrige una carencia de seguridad en un ensamblado liberado previamente.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 solo difieren en los números de compilación o de revisión se consideran actualizaciones de revisión 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 a las que no se ha asignado explícitamente un valor es undefined (-1).The value of Version properties that have not been explicitly assigned a value is undefined (-1).

A partir de .NET Framework 2,0, las propiedades MajorRevision y MinorRevision permiten identificar una versión temporal de la aplicación que, por ejemplo, corrige un problema hasta que se puede publicar 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 utiliza la propiedad MajorRevision 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 información de versión a los ensambladosAssigning Version Information to Assemblies

Normalmente, la clase Version no se utiliza 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, la clase AssemblyVersionAttribute 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.

Recuperando información de versiónRetrieving Version Information

Version objetos se utilizan 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), el 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. En los siguientes ejemplos se muestran algunos de los escenarios más comunes:The following examples illustrate some of the most common scenarios:

  • Recuperando la versión del sistema operativo.Retrieving the operating system version. En el ejemplo siguiente se usa la propiedad OperatingSystem.Version 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())
    
  • Recuperando la versión de la Common Language Runtime.Retrieving the version of the common language runtime. En el ejemplo siguiente se usa la propiedad Environment.Version para recuperar información de versión sobre la 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())
    
  • Recuperando la versión de ensamblado de la aplicación actual.Retrieving the current application's assembly version. En el ejemplo siguiente se usa el método Assembly.GetEntryAssembly para obtener una referencia a un objeto Assembly que representa el ejecutable de la aplicación y, a continuación, recupera el 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
    
  • Recuperando la versión de ensamblado del ensamblado actual.Retrieving the current assembly's assembly version. En el ejemplo siguiente se usa la propiedad Type.Assembly para obtener una referencia a un objeto Assembly 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 método Assembly.ReflectionOnlyLoadFrom para obtener una referencia a un objeto Assembly que tiene un nombre de archivo determinado 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 instancias de un objeto Assembly 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 la propiedad ApplicationDeployment.CurrentVersion para mostrar la versión de publicación de una aplicación.The following example uses the ApplicationDeployment.CurrentVersion property to display an application's Publish Version. Tenga en cuenta que la ejecución correcta requiere que se establezca la identidad de aplicación del ejemplo.Note that its successful execution requires the example's application identity to be set. Lo controla automáticamente el Asistente para 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 ClickOnce es completamente independiente de la 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 método CompareTo para determinar si un objeto Version es anterior, igual o posterior a un segundo objeto Version.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 dos versiones sean iguales, los números principal, secundario, de compilación y de revisión del primer objeto Version deben ser idénticos a los del segundo objeto Version.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 o revisión de un objeto Version es indefinido, se considera que Version objeto es anterior a un objeto Version cuya compilación o 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. En el ejemplo siguiente se muestra cómo comparar tres objetos Version que tienen componentes de versión sin definir.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()

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

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)

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)

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)

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

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

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

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

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

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

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

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)

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)

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)

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)

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

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

GetType()

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

(Heredado de Object)
MemberwiseClone()

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

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

Convierte el intervalo de caracteres de solo lectura especificado que representa un número de versión en un objeto Version equivalente.Converts the specified read-only span of characters that represents a version number to an equivalent Version object.

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

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)

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)

Intenta dar formato a esta instancia de versión para convertirla en un intervalo de caracteres.Tries to format this version instance into a span of characters.

TryFormat(Span<Char>, Int32, Int32)

Intenta dar formato a esta instancia de versión para convertirla en un intervalo de caracteres.Tries to format this version instance into a span of characters.

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 Version equivalente, y devuelve un valor que indica si la conversión se realizó correctamente o no.Tries to convert the specified read-only span of characters representing a version number to an equivalent Version object, and returns a value that indicates whether the conversion succeeded.

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)

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

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)

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)

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

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)

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)

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.

Se aplica a