Atributos globales de Visual Basic

Actualización: noviembre 2007

La mayoría de atributos se anexan a elementos específicos del lenguaje, como las clases o los métodos. Sin embargo, algunos atributos son globales, es decir, se pueden aplicar a un ensamblado o un módulo completos.

Puede establecer muchos de los atributos del entorno de desarrollo integrado (IDE) de Visual Studio mediante el Información de ensamblado (Cuadro de diálogo). Para obtener más información, vea Administrar las propiedades de la aplicación y Administrar la firma de ensamblados y manifiestos.

Atributos de ensamblado

Para especificar atributos de nivel de ensamblado debe utilizar la siguiente sintaxis:

<Assembly: Attribute1, Assembly: Attribute2..., Assembly: AttributeN>

Para especificar atributos de nivel de módulo debe utilizar una sintaxis similar:

<Module: Attribute1, Module: Attribute2..., Module: AttributeN>

Puede agregar los atributos globales en el código fuente a continuación de las directivas de nivel superior, como las instrucciones Option Explicit e Imports, pero delante de cualquier declaración de tipo o de espacio de nombres. Los atributos globales pueden aparecer en varios archivos de código fuente de un proyecto, pero se suelen colocar en el archivo AssemblyInfo.vb creado automáticamente en los proyectos de Visual Basic.

Los atributos de ensamblado son valores que proporcionan información sobre un ensamblado. Se incluyen en las siguientes categorías:

  • Atributos de identidad de ensamblado

  • Atributos de información

  • Atributos del manifiesto de ensamblado

  • Atributos del nombre seguro

Atributos de identidad del ensamblado

Tres atributos (con un nombre seguro, si es aplicable) determinan la identidad de un ensamblado: nombre, versión y referencia cultural. Estos atributos forman el nombre completo del ensamblado y son necesarios para hacer referencia al ensamblado en el código. Puede establecerse una referencia cultural y una versión de ensamblado utilizando atributos. Sin embargo, el valor del nombre lo establece el compilador, el IDE de Visual Studio en el Información de ensamblado (Cuadro de diálogo) o la herramienta Assembly Linker (Al.exe) cuando se crea el ensamblado, tomando como base el archivo que contiene el manifiesto del ensamblado. El atributo AssemblyFlagsAttribute especifica si pueden coexistir varias copias del ensamblado.

La tabla siguiente muestra los atributos de identidad:

Atributo

Finalidad

AssemblyName

Describe completamente la identidad del ensamblado.

AssemblyVersionAttribute

Especifica la versión del ensamblado.

AssemblyCultureAttribute

Especifica la referencia cultural admitida por el ensamblado.

AssemblyFlagsAttribute

Especifica si un ensamblado admite ejecución conjunta en el mismo equipo, en el mismo proceso o en el mismo dominio de aplicación.

El código siguiente aplica los atributos de versión y referencia cultural a un ensamblado:

'Set version number for assembly.
<Assembly: Reflection.AssemblyVersionAttribute("4.3.2.1")> 
'Set culture as German.
<Assembly: Reflection.AssemblyCultureAttribute("de")> 

Atributos informativos

Los atributos informativos se pueden usar para proporcionar información adicional del producto o de la compañía sobre un ensamblado. La tabla siguiente muestra los atributos de información definidos en el espacio de nombres System.Reflection.

Atributo

Finalidad

AssemblyProductAttribute

Define un atributo personalizado que especifica un nombre de producto para un manifiesto de ensamblado.

AssemblyTrademarkAttribute

Define un atributo personalizado que especifica una marca comercial para un manifiesto de ensamblado.

AssemblyInformationalVersionAttribute

Define un atributo personalizado que especifica una versión informativa para un manifiesto de ensamblado.

AssemblyCompanyAttribute

Define un atributo personalizado que especifica un nombre de compañía para un manifiesto de ensamblado.

AssemblyCopyrightAttribute

Define un atributo personalizado que especifica un copyright para un manifiesto de ensamblado.

AssemblyFileVersionAttribute

Indica al compilador que debe utilizar un número de versión específico para el recurso de versión de archivo Win32.

CLSCompliantAttribute

Indica si el ensamblado cumple los requisitos de Common Language Specification (CLS).

Atributos de manifiesto del ensamblado

Puede usar los atributos del manifiesto del ensamblado para proporcionar información en el manifiesto del ensamblado. Esto incluye título, descripción, alias predeterminado y configuración. La tabla siguiente muestra los atributos del manifiesto de ensamblado definidos en el espacio de nombres System.Reflection.

Atributo

Finalidad

AssemblyTitleAttribute

Define un atributo personalizado que especifica un título de ensamblado para un manifiesto de ensamblado.

AssemblyDescriptionAttribute

Define un atributo personalizado que especifica una descripción de ensamblado para un manifiesto de ensamblado.

AssemblyConfigurationAttribute

Define un atributo personalizado que especifica una configuración de ensamblado (como versión comercial o de depuración) para un manifiesto de ensamblado.

AssemblyDefaultAliasAttribute

Define un alias predeterminado descriptivo para un manifiesto de ensamblado

Atributos del nombre seguro

Los nombres seguros son identificadores únicos que protegen la identidad y la integridad de un ensamblado. Puede firmar un ensamblado desde el IDE de Visual Studio a través de la Página Firma, Diseñador de proyectos. Para obtener más información, vea Administrar la firma de ensamblados y manifiestos.

También tiene la posibilidad de utilizar atributos de nombre seguro para establecer nombres seguros para ensamblados. La tabla siguiente muestra los atributos de nombre seguro definidos en el espacio de nombres System.Reflection.

Atributo

Finalidad

AssemblyDelaySignAttribute

Valor booleano que indica si se desea reservar espacio en el archivo ejecutable para la firma de nombre seguro y aplazar la firma real a una fase posterior. Para obtener más información, consulte Retrasar la firma de un ensamblado.

AssemblyKeyFileAttribute

Indica el archivo que contiene una clave. La ubicación del archivo de clave (KeyFile) debe ser relativa al directorio de resultados del proyecto, que es %Directorio del proyecto%\obj\<configuración>. Por ejemplo, si el archivo de clave se encuentra en el directorio del proyecto, debe especificar el atributo AssemblyKeyFile de la manera siguiente:

[ensamblado: AssemblyKeyFile (".. \\.. \\mykey.snk")]

AssemblyKeyNameAttribute

Hace referencia a una clave instalada en el Proveedor de servicios de criptografía (CSP, Crypto Service Provider) en su equipo. Debe especificar una clave para poder firmar el archivo.

Si se han especificado los valores de KeyFile y KeyName, se realiza el siguiente procesamiento:

  • Si se puede encontrar el valor de KeyName en el CSP, se usa esa clave.

  • Si el valor de KeyName no existe y el archivo de clave existe, se instala en el CSP la clave de KeyFile y se utiliza.

  • Para obtener más información, consulte Consideraciones de seguridad sobre ensamblados.

Firmar ensamblados

Un ensamblado se puede firmar de dos formas diferentes pero complementarias: con un nombre seguro o con firma. Puede firmar mediante la Página Firma, Diseñador de proyectos del IDE de Visual Studio o mediante la Herramienta Firma de archivos (Signcode.exe). Al firmar un ensamblado con un nombre seguro, se agrega un cifrado mediante clave pública al archivo que contiene el manifiesto del ensamblado. La firma mediante nombres seguros ayuda a comprobar la exclusividad del nombre, impide la simulación de nombres y proporciona identidad a los llamadores cuando se resuelve una referencia. Para obtener más información, vea Administrar la firma de ensamblados y manifiestos y Cómo: Firmar un ensamblado con un nombre seguro.

Para firmar un ensamblado con un nombre seguro

  1. Utilice la Herramienta de nombre seguro (Sn.exe) para generar un archivo de claves que contiene un par de claves.

  2. Agregue atributos de nombre seguro al archivo AssemblyInfo.vb creado automáticamente en los proyectos de Visual Basic. Para editar este archivo, haga doble clic en el nombre del archivo en el Explorador de soluciones.

    En el ejemplo siguiente se usa la firma de retardo para crear un ensamblado con nombre seguro mediante un archivo de clave pública denominado myKey.snk.

    <Assembly: Reflection.AssemblyKeyFile("myKey.snk")> 
    <Assembly: Reflection.AssemblyDelaySign(True)> 
    
    Nota:

    Los atributos de ensamblado se omiten si no está creando un ensamblado, por ejemplo cuando compila desde la línea de comandos mediante la opción /target:module.

Vea también

Tareas

Cómo: Definir atributos propios

Cómo: Firmar un ensamblado con un nombre seguro

Conceptos

Aplicación de los atributos

Consideraciones de seguridad sobre ensamblados

Referencia

Herramienta de nombre seguro (Sn.exe)

Herramienta Firma de archivos (Signcode.exe)

Página Firma, Diseñador de proyectos

Información de ensamblado (Cuadro de diálogo)

Otros recursos

Atributos personalizados en Visual Basic

Administrar las propiedades de la aplicación

Administrar la firma de ensamblados y manifiestos