Atributos redundantes del AssemblyInfo.cs de forma centralizada

Es un hecho factible que alrededor del 90% de las aplicaciones desarrolladas en Visual Studio 2003 o 2005 sean soluciones que contengan varios proyectos: Windows Apllication + Class Library o Web Site + Class Library + Web Service, etc. Sea cual fuere el tipo o cantidad de proyectos definidos, es muy probable que en ellos encontremos definidos en archivos AssemblyInfo.cs atributos del tipo [assembly: ]redundantes. La forma de poder centralizar esa información es crear un archivo que llamaremos GlobalAssemblyInfo.cs en la carpeta virtual "Solution Items" de la solución:

using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyCompany("Empresa")]
[assembly:
AssemblyProduct("Facturacion")]
[assembly:
AssemblyCopyright("Copyright © Empresa 2007")]
[assembly:
AssemblyTrademark("")]
[assembly:
AssemblyCulture("")]

// Version information for an assembly consists of the following four values:
// Major Version
// Minor Version
// Build Number
// Revision

// Las siguientes 2 declaraciones dependerán de la política de versionamiento que adopte para cada uno de los assemblies generados.
[assembly: AssemblyVersion("4.0.27.0")]
[assembly:
AssemblyFileVersion("4.0.27.0")]

[assembly: AssemblyInformationalVersion("4.0")]

Cada uno de los proyectos entonces contendrá su típico archivos AssemblyInfo.cs con los atributos específicos:

using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.

[assembly: AssemblyTitle("Facturacion User Interface")]
[assembly: AssemblyDescription("Intrefaz de usuario de Factuaracion")]
[assembly: AssemblyConfiguration("")]

Nota: Nótese que las declaraciones que definen la versión del assembly bien pueden estar definidas en el GlobalAssmeblyInfo.cs, si todos los assmblies llevan el mismo número de versión por cada libración, o en el AssemblyInfo.cs, si cada uno de ellos estan versionados independientemente. Para una mejor compresión lea Versionamiento de Assemblies

Resta entonces crear una referencia al archivo GlobalAssemblyInfo.cs en cada proyecto de la solución, para ello:

  1. Haga click derecho sobre el proyecto: "Add", "New Item"
  2. Seleccione el archivo GlobalAssemblyInfo.cs
  3. Haga click sobre la flecha a la derecha del botón "Add"
  4. Seleccione "Add as Link"
  5. Por útlimo arrastre la referencia del archivo GlobalAssemblyInfo.cs a la carpeta propiedades.
Agregar a Technorati
Published Sunday, July 08, 2007 1:28 AM by cwalzer
Filed under: ,

Leave a Comment

(required) 
(required) 
(optional)
(required) 
Powered by Community Server (Commercial Edition), by Telligent Systems