En mi caso, estamos creando un producto para el que tenemos una solución de Visual Studio, con varios componentes en sus propios proyectos. Los atributos comunes van. En la solución, hay cerca de 35 proyectos, y un montaje de información común (CommonAssemblyInfo.cs), que tiene los siguientes atributos:
[assembly: AssemblyCompany("Company")]
[assembly: AssemblyProduct("Product Name")]
[assembly: AssemblyCopyright("Copyright © 2007 Company")]
[assembly: AssemblyTrademark("Company")]
//This shows up as Product Version in Windows Explorer
//We make this the same for all files in a particular product version. And increment it globally for all projects.
//We then use this as the Product Version in installers as well (for example built using Wix).
[assembly: AssemblyInformationalVersion("0.9.2.0")]
Los otros atributos tales como AssemblyTitle, AssemblyVersion etc., suministramos en un per- base de montaje. Al construir un ensamblado, tanto AssemblyInfo.cs como CommonAssemblyInfo.cs están integrados en cada ensamblaje. Esto nos brinda lo mejor de ambos mundos, donde es posible que desee tener algunos atributos comunes para todos los proyectos y valores específicos para algunos otros.
Espero que ayude.
¿Cuál es el propósito de mantener los archivos antiguos de AssemblyInfo.cs? Cuando automatizo mi sello de versión de compilación en GlobalAssemblyInfo.cs, ¿cómo actualiza los archivos AssemblyInfo.cs que tengo en mi solución? – D3vtr0n
@Devtron Los archivos individuales de AssemblyInfo deben proporcionar información exclusiva del ensamblaje en el que residen (por ejemplo, título, descripción y cultura, como en el ejemplo anterior). Las entradas comunes, como el nombre del producto y la información de versiones deben eliminarse (y causarán un error del compilador si están duplicadas). Lo ideal es que el proceso de compilación no actualice los archivos de AssemblyInfo. –
^Correcto. Desde entonces lo he descubierto a través de prueba y error. Un poco ingenioso y genial :) – D3vtr0n