Tengo un requerimiento para instalar múltiples proyectos de configuración web (usando VS2005 y ASP.Net/C#) en la misma carpeta virtual. Los proyectos comparten algunas referencias de ensamblaje (todos los sistemas de archivos están estructurados para usar la misma carpeta 'bin'), lo que dificulta el despliegue de cambios en esos ensamblajes ya que el instalador MS solo sobrescribirá ensamblajes si la versión instalada actualmente es anterior a la el MSI.¿Cómo puedo usar MSBuild para actualizar la información de la versión solo cuando ha cambiado un ensamblaje?
No estoy sugiriendo que el esquema de instalación pesimista sea incorrecto, solo que crea un problema en el entorno con el que he trabajado. Debido a que hay un número considerable de ensambles comunes y un número significativo de desarrolladores que pueden cambiar un ensamblaje común, pero se olvidan de actualizar su número de versión, tratar de administrar las versiones manualmente conducirá finalmente a una confusión masiva en el momento de la instalación.
En la otra cara de este tema, también es importante que no se actualice de forma espontánea números de versión y reemplazar todos asambleas comunes con cada instalar, ya que los casos oscuros podría (al menos temporalmente) que se hicieron cambios reales.
Dicho esto, lo que estoy buscando es un medio para actualizar la información de la versión del ensamblado (preferiblemente usando MSBuild) solo en casos donde los componentes del ensamblaje (módulos de código, recursos, etc.) hayan/hayan cambiado realmente.
He encontrado algunas referencias que son al menos parcialmente pertinentes here (tarea AssemblyInfo en MSDN) y here (se parece a lo que necesito, pero con más de dos años y sin una solución clara).
Mi equipo también utiliza el control de versiones TFS, por lo que una solución automatizada probablemente debería incluir un medio por el cual AssebmlyInfo se pueda extraer/registrar durante la compilación.
Cualquier ayuda sería muy apreciada.
Gracias de antemano.