2009-05-28 8 views
11

C# 2008 SP1C# Manera efectiva de administrar el número de revisión

Me pregunto cuál es la mejor manera de manejar los números de revisión.

Siempre pensé que normalmente solo hay 3 números. (Correcciones mayor, menor y error).

Sin embargo, me pregunto cuál es el número de compilación y el número de revisión.

Por ejemplo, en el pasado solía usar solo 3 números. Si hay algún cambio menor o una corrección de error, aumentaría el 3er. Número (corrección de errores).

Porque soy nuevo en esto. ¿Qué se hace normalmente en el mundo profesional?

Muchas gracias por cualquier consejo,

En mi archivo AssemblyInfo Tengo el siguiente:

// Version information for an assembly consists of the following four values: 
// 
//  Major Version 
//  Minor Version 
//  Build Number 
//  Revision 
// 
// You can specify all the values or you can default the Build and Revision Numbers 
// by using the '*' as shown below: 
// [assembly: AssemblyVersion("1.0.*")] 
[assembly: AssemblyVersion("1.0.2.*")] 
[assembly: AssemblyFileVersion("1.0.0.0")] 

// 1.0.2 Added feature for detecting if a sound card is installed. 

Respuesta

1

Gracias por todas sus sugerencias.

He decidido utilizar lo siguiente.

Mi proyecto tiene el siguiente número de versión: 1.0.2.20. 1. : Los principales cambios 0.: Los cambios menores 2.: Corrección de errores 20: número de revisión de Subversion

Así que han cambiado lo siguiente en mi archivo assemblyinfo.c

[assembly: AssemblyVersion("1.0.2.20")] 

alguna sugerencia sobre esta idea, me gustaría escuchar.

Muchas gracias,

+2

Seguir el número de correcciones de errores será difícil si tiene varios programadores diferentes trabajando en el mismo código. –

8
+0

Solíamos utilizar un enfoque similar pero descubrimos que la gestión a largo plazo con este método es realmente bastante difícil. Por un lado, no funciona bien con la integración continua y causa estragos en las compilaciones incrementales. Finalmente, pasamos a usar el número de versión de SVN como nuestro número de compilación, que tenía más sentido desde el punto de vista de publicación/seguimiento de errores. –

4

Usted querrá tener en cuenta el control de versiones ensamblar y archivar de manera diferente. Cuando cambie el número de versión del ensamblaje, es posible, pero extremadamente difícil, que el código existente lo use sin volver a compilar. Solo cambiamos la versión de ensamblaje cuando hay cambios de última hora, por lo que podemos lanzar pequeñas correcciones de errores fácilmente.

Lea más en nuestra política Assembly Versioning.

+0

Los ensamblados se tratan igual en el marco de .NET (vinculante), si no cambia el número de versión principal y secundaria –

+0

Eso no es cierto en realidad. Cuando usa nombres fuertes, se considera el número de versión completo. –

+0

El enlace en su respuesta ahora está roto. Creo que es ahora [este] (http://xheo.com/knowledge-base/deploylx/general/assembly-versioning). – ssarabando

10

De MSDN:

  • Cuerpo: Una diferencia en el número de compilación representa una recopilación de la misma fuente. Esto sería apropiado debido a procesador, plataforma o cambios en el compilador.

  • Revisión: Ensambles con los mismos números de versión principal, principal y secundaria pero las diferentes revisiones están destinadas a para que sean completamente intercambiables. Este sería apropiado para reparar un agujero de seguridad en un ensamble previamente lanzado.

Phil Haack tiene una nice deconstruction del sistema de control de versiones de .NET, pero en la práctica no creo que sus preocupaciones realmente importa ya que en mi experiencia, el sistema de control de versiones .NET/MS sólo es realmente utilizados por los técnicos para fines de depuración/soporte/seguimiento, la gestión pública y del proyecto a menudo estará basada en la fecha o en el número de versión de comercialización.

FWIW cada proyecto .NET en el que he trabajado ha sido gobernado por "X.Y. *", es decir, nos gusta controlar manualmente cuáles son las principales y las menores, pero dejar que el sistema controle la compilación y la revisión.

2

Utilizamos el número de corrección de errores en incrementos de dos. Los números impares significan correcciones de errores menores publicadas e incluso números significan trabajar en la corrección de errores. Aparentemente esto es común en algunas empresas, es decir, en la que estoy.

La idea es identificar las versiones accidentales, y de alguna manera me gusta la idea. Hacer cosas para que pueda ver fácilmente las cosas que están mal. Esto no dice que un número impar necesariamente es una versión no accidental, solo que es con una probabilidad bastante alta.

+0

¿No debería ser al revés? Porque, un .0 en su sistema significa una versión de desarrollo, pero una versión 1.0.0 es probablemente una versión real, ¿no es así? : D Aparte de eso, me gusta este sistema. Tiene sentido. Siempre estoy seguro de cuándo aumentar el número (porque, demasiado pronto significa que hay una versión "incorrecta", y demasiado tarde significa que no puede realizar la prueba anticipada con el nuevo número de versión). – OregonGhost

5

creo que la respuesta de Pablo Alexander es el correcto pero me gustaría añadir el siguiente comentario en el archivo de AssemblyInfo:

Si utiliza 1.0.2.* recordar que el último bit (reemplazado por el *) es un azar número Entonces, si compila 1.0.2. * `esta tarde, y la vuelve a construir mañana por la mañana, la segunda versión podría tener un número de versión inferior al que compiló anteriormente.

+2

Según MSDN: "El número de compilación predeterminado aumenta diariamente. El número de revisión predeterminado es aleatorio." –

+0

Bueno, si es aleatorio puede obtener la misma anomalía: que una compilación posterior tiene un número de versión inferior a la versión anterior. –

+0

Solo para el registro, el número de revisión no es aleatorio (nunca más). Ahora, la compilación y la revisión autoincrementadas representan la fecha y la hora, respectivamente. La compilación es la cantidad de días pasados ​​desde el 01.01.2000, y la revisión es la cantidad de segundos pasados ​​ese día divididos por dos (debido a la limitación de 65535, creo). –

Cuestiones relacionadas