Compartir vía


AssemblyVersionAttribute Clase

Definición

Especifica la versión del ensamblado con atributos.

public ref class AssemblyVersionAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, Inherited=false)]
public sealed class AssemblyVersionAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false)]
public sealed class AssemblyVersionAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, Inherited=false)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class AssemblyVersionAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly, Inherited=false)>]
type AssemblyVersionAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false)>]
type AssemblyVersionAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly, Inherited=false)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type AssemblyVersionAttribute = class
    inherit Attribute
Public NotInheritable Class AssemblyVersionAttribute
Inherits Attribute
Herencia
AssemblyVersionAttribute
Atributos

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

El AssemblyVersionAttribute atributo se usa para asignar un número de versión a un ensamblado. Después, ese número de versión se almacena con los metadatos del ensamblado.

El número de versión del ensamblado forma parte de la identidad de un ensamblado y desempeña un papel clave en el enlace al ensamblado y en la directiva de versión. La directiva de versiones predeterminada para el motor en tiempo de ejecución es que las aplicaciones se ejecuten sólo en las versiones con las que se compilaron y comprobaron, a menos que se reemplace con una directiva de versiones explícita en los archivos de configuración (el archivo de configuración de la aplicación, el archivo de directivas de la compañía de software y el archivo de configuración del administrador del equipo). Consulte Ensamblados en .NET para obtener más información.

Nota

La comprobación de versión sólo se produce para los ensamblados con nombres seguros.

El número de versión tiene cuatro partes, como se indica a continuación:

<versión> principal.<versión> secundaria.<número de> compilación.<Revisión>

Importante

Todos los componentes de la versión deben ser enteros mayores o iguales que 0. Los metadatos restringen los componentes principales, secundarios, de compilación y de revisión de un ensamblado a un valor máximo de UInt16.MaxValue - 1. Si un componente supera este valor, se produce un error de compilación.

Por ejemplo, [assembly:AssemblyVersion("2.3.25.1")] indica 2 como la versión principal, 3 como la versión secundaria, 25 como el número de compilación y 1 como número de revisión.

El AssemblyVersionAttribute atributo permite especificar un asterisco (*) en lugar del número de compilación o revisión. Un número de versión, como [assembly:AssemblyVersion("1.2.*")] especifica 1 como la versión principal y 2 como la versión secundaria, y acepta los números de compilación y revisión predeterminados. Un número de versión, como [assembly:AssemblyVersion("1.2.15.*")] especifica 1 como la versión principal, 2 como la versión secundaria y 15 como el número de compilación, y acepta el número de revisión predeterminado. El número de compilación predeterminado se incrementa diariamente. El número de revisión predeterminado es el número de segundos desde la hora local de medianoche (sin tener en cuenta los ajustes de zona horaria para el horario de verano), dividido por 2. Si especifica un asterisco para el número de compilación, no puede especificar un número de revisión.

Importante

Uso del AssemblyVersionAttribute atributo que especifica un asterisco:

  • Hace que las salidas de compilación no se pueda reproducir (consulte Compilaciones reproducibles). Si el compilador notifica que el compilador notifica Deterministic la propiedad de compilación en true una CS8357 propiedad de compilación.
  • Puede degradar el rendimiento de la compilación, ya que impide que la compilación almacena en caché las salidas del compilador.
  • No es compatible con las características Editar & Continuar y Recarga activa.

Puede mitigar algunos de estos problemas limitando el uso de versiones basadas en tiempo para publicar compilaciones mediante la compilación condicional, de la siguiente manera:

#if DEBUG
[assembly: AssemblyVersion("1.0.0.0")]
#else
[assembly: AssemblyVersion("1.0.*")]
#endif

Un mejor enfoque para el control de versiones es derivar el ensamblado o la versión de archivo del HEAD SHA de confirmación (para repositorios git). Consulte, por ejemplo, Nerdbank.GitVersioning.

Las versiones principales y secundarias del ensamblado se usan como número de versión de la biblioteca de tipos cuando se exporta el ensamblado. Algunos hosts COM no aceptan bibliotecas de tipos con el número de versión 0.0. Por lo tanto, si desea exponer un ensamblado a clientes COM, establezca la versión del ensamblado explícitamente en 1.0 en la AssemblyVersionAttribute página para proyectos creados fuera de Visual Studio 2005 y sin AssemblyVersionAttribute especificar. Haga esto incluso cuando la versión del ensamblado sea 0.0. Todos los proyectos creados en Visual Studio 2005 tienen una versión predeterminada del ensamblado 1.0.*.

Para obtener el nombre de un ensamblado que ha cargado, llame GetName a en el ensamblado para obtener y AssemblyName, a continuación, obtenga la Version propiedad . Para obtener el nombre de un ensamblado que no ha cargado, llame GetAssemblyName desde la aplicación cliente para comprobar la versión del ensamblado que usa la aplicación.

El AssemblyVersionAttribute atributo solo se puede aplicar una vez. Algunas plantillas de proyecto de Visual Studio ya incluyen el atributo . En esos proyectos, agregar el atributo en el código produce un error del compilador.

Constructores

AssemblyVersionAttribute(String)

Inicializa una nueva instancia de la clase AssemblyVersionAttribute con el número de versión del ensamblado con atributos.

Propiedades

TypeId

Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute.

(Heredado de Attribute)
Version

Obtiene el número de versión del ensamblado con atributos.

Métodos

Equals(Object)

Devuelve un valor que indica si esta instancia es igual que un objeto especificado.

(Heredado de Attribute)
GetHashCode()

Devuelve el código hash de esta instancia.

(Heredado de Attribute)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
IsDefaultAttribute()

Si se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado de la clase derivada.

(Heredado de Attribute)
Match(Object)

Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado.

(Heredado de Attribute)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.

(Heredado de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Obtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz.

(Heredado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1).

(Heredado de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Proporciona acceso a las propiedades y los métodos expuestos por un objeto.

(Heredado de Attribute)

Se aplica a

Consulte también