Uso de atributos AssemblyVersion y AssemblyFileVersion

En este artículo se presenta cómo usar AssemblyVersion los atributos y AssemblyFileVersion en el archivo AssemblyInfo.cs.

Versión original del producto: .NET Framework
Número de KB original: 556041

Resumen

AssemblyInfo.cs proporciona dos atributos para definir diferentes tipos de números de versión. En este artículo se explica cómo usar estos atributos de forma eficaz.

Microsoft .NET Framework permite establecer dos tipos diferentes de números de versión en cada ensamblado.

AssemblyVersion

AssemblyVersion es el número de versión que usa el marco durante la compilación y en tiempo de ejecución para buscar, vincular y cargar los ensamblados. Al agregar una referencia a un ensamblado en el proyecto, este número de versión está incrustado. En tiempo de ejecución, Common Language Runtime (CLR) usa este número de versión para cargar el ensamblado.

Nota: Esta versión se usa junto con el nombre del ensamblado, el token de clave pública y la información de referencia cultural solo si el ensamblado tiene un nombre seguro (firmado). Si el ensamblado no tiene un nombre seguro, solo se utiliza el nombre de archivo para su carga.

AssemblyFileVersion

AssemblyFileVersion es el número de versión asignado a un archivo de ensamblado como en el sistema de archivos. Se muestra en el Explorador de Windows y nunca se usa en .NET Framework o en tiempo de ejecución para hacer referencia.

Atributos en AssemblyInfo.cs

// Version information for an assembly consists of the following four values:
// Major Version
// Minor Version
// Build Number
// Revision
[assembly: AssemblyVersion("1.0.0.0")]  
[assembly: AssemblyFileVersion("1.0.0.0")]

El uso de un asterisco (*) en lugar de un número específico permite al compilador incrementar automáticamente el valor con cada compilación.

Por ejemplo, si va a compilar un ensamblado de framework que es utilizado por muchos desarrolladores y publica nuevas versiones con frecuencia (por ejemplo, diariamente) y los ensamblados tienen un nombre fuerte, los desarrolladores deberían actualizar sus referencias con cada versión. Puede ser complicado y puede provocar referencias incorrectas.

Un mejor enfoque en estos escenarios de grupo cerrado y volátil es mantener el AssemblyVersion fijo y actualizar solo el AssemblyFileVersion. Permite a los desarrolladores sobrescribir el ensamblado en la ruta de referencia sin cambiar sus referencias del proyecto.

En el caso de las compilaciones de versión central o final, se recomienda actualizar AssemblyVersion para reflejar cambios significativos. En estos casos, AssemblyFileVersion normalmente se actualiza para que coincida con AssemblyVersion por coherencia.