Tenemos un único archivo AssemblyInfoGlobal.cs a nivel de solución, como las otras respuestas. Luego, como parte de nuestro script de compilación, una pequeña aplicación que toma el CCNetLabel que define CruiseControl.net (y usa el LabelLabeller para generar las etiquetas) y descarga el archivo global, modifica el número de versión y luego vuelve a revisar el archivo global .
Algunos de nuestros proyectos tienen múltiples soluciones, por lo que el archivo global se encuentra por encima del nivel de solución en la estructura del directorio, lo suficientemente alto para que todo lo que necesita esté debajo.
También actualizamos los números de versión de los proyectos de implementación; el número de estos se encuentra en el archivo VDProj, pero no estoy seguro de que los encuentre en las versiones express: creo que es una función de subida profesional completa. Y algunos proyectos tienen una docena de proyectos de implementación, pero no es una forma fácil de externalizar el número de versión del archivo VDPROJ mismo. (¿o hay?)
Luego ocurre la construcción, lo que significa que todas las salidas de la construcción tienen exactamente el mismo número de versión, en cualquier momento podemos obtener la versión del MSI o ensamblado y sabemos exactamente qué fuente era utilizado para construir esa salida.
Parece que no funciona en VB o es debido a la edición Express para VS.NET? Parece un gran truco. –
Necesita agregar un uso también. Voy a agregar mi respuesta. –
Quiere decir eliminar el atributo "AssemblyFileVersion", ¿verdad? – Alexander