Mi grupo y yo somos horrendos a la hora de incrementar los números de versión de ensamblajes y con frecuencia enviamos ensamblajes con versiones 1.0.0.0. Evidentemente, esto provoca muchos dolores de cabeza.
Estamos mejorando mucho con nuestras prácticas a través de nuestra plataforma de CI y realmente me gustaría configurarlo para que aumente automáticamente los valores dentro del assemblyinfo.cs
archivo para que las versiones de nuestros ensamblados se actualicen automáticamente con los cambios de código en ese ensamblado.
Previamente había configurado (antes de encontrar Hudson ) una forma de incrementar el valor a través demsbuild
la línea de comando (no recuerdo), pero con Hudson, eso actualizará el repositorio SVN y activará OTRA compilación. Eso resultaría en un bucle infinito lento ya que Hudson sondea SVN cada hora.
¿Es mala idea que Hudson incremente el número de versión? ¿Cuál sería una forma alternativa de hacerlo?
Idealmente, mi criterio para una solución sería uno que:
- Incrementa el número de compilación
assemblyinfo.cs
antes de una compilación - Solo incrementa el número de compilación en ensamblados que han cambiado. Esto puede no ser posible ya que Hudson borra la carpeta del proyecto cada vez que realiza una compilación.
- Confirma el assemblyinfo.cs modificado en el repositorio de código (actualmente VisualSVN )
- No hace que Hudson active una nueva compilación la próxima vez que busque cambios
Resolviendo esto en mi cabeza, podría encontrar fácilmente una solución para la mayor parte de esto a través de archivos / comandos por lotes, pero todas mis ideas harían que Hudson active una nueva compilación la próxima vez que escanee. No estoy buscando a alguien que haga todo por mí, solo apúntame en la dirección correcta, tal vez una técnica para hacer que Hudson ignore ciertas confirmaciones de SVN, etc.
Todo lo que he encontrado hasta ahora es solo un artículo que explica cómo aumentar el número de versión automáticamente, nada tiene en cuenta una plataforma de CI que podría girar en un bucle infinito.