NET es lo mejor para comprobar en las AssemblyInfo.cs actualizadas en una acumulación diaria?

StackOverflow https://stackoverflow.com/questions/1958804

Pregunta

En mi trabajo, la versión de montaje de cada proyecto en el control de la fuente se mantiene a 1.0.0.0. Cuando la máquina de construcción hacer una nueva construcción diaria, tiene una tarea de actualizar la versión de ensamblado pero no comprueba en los AssemblyInfo.cs actualizados. Así que en nuestras máquinas dev, la versión de montaje de los archivos DLL que están recopilando siempre se establece en 1.0.0.0.

¿Es mejor manera de mantener la versión de montaje hasta la fecha en el control de código fuente o estamos haciendo lo correcto ya?

¿Cuáles son los pros y los contras de cada uno de posibilidades?

Gracias


Duplicar o relacionados:
caso AssemblyInfo.cs ser colocado en el control de versiones?

¿Fue útil?

Solución

En contra:

  • no se puede depurar o probar cualquier código que depende de la versión de montaje correcta (si tiene ese código)

Por cierto, hay una manera más fácil para asegurarse de que todas sus versiones de montaje son sincronizados: definir un public const cadena "VersionMask" en un VersionInfo clase pública en un conjunto de nivel superior al que hace referencia el resto de asambleas y put

[assembly: AssemblyVersion(VersionInfo.VersionMask)]

en cada archivo de AssemblyInfo.cs (siempre y cuando ar con C #), para VB.NET es

<Assembly: AssemblyVersion(VersionInfo.VersionMask)> 

Otros consejos

Esto no es correcto, no se debe actualizar de forma automática [AssemblyVersion]. Ese atributo juega un papel muy importante en el proceso de resolución de la Asamblea cuando el CLR está buscando la versión correcta de un montaje para cargar. Aunque que esto es sólo discriminativo cuando el conjunto se almacena en la GAC. Preferiblemente, sólo se debe cambiar cuando un desarrollador hace un cambio importante en la interfaz pública de la asamblea, una que hacerlo inutilizable de una aplicación que no se vuelve a compilar lo contrario con un conjunto de referencia actualizada.

Siempre se puede actualizar [AssemblyFileVersion]. Esa es también la versión que es visible en el Explorador cuando se mira a la pestaña propiedad Version. Ahora también ya no importa mucho en comprobó que el archivo se.

Para la comparación, lo mismo se hizo con los ensamblados .NET de .NET 2.0 a través de .NET 3.5 SP1. Todos los montajes estándar alojado en asamblea versión 2.0.0.0, la versión del archivo se ha cambiado miles de veces. Que estos cambios eran siempre compatibles, sin embargo es un acto muy difícil de seguir.

Mi enfoque ha sido siempre, debe ser capaz de construir la cosa sólo por tener acceso al sistema de control de código fuente. Por lo tanto, si el script que actualiza los AssemblyInfo.cs está en control de código fuente, entonces no hay problema.

supongo que es mejor almacenar la versión en AssemblyInfo.cs, por lo que cualquier persona puede comprobación y construir la versión correcta. Tener versión Asamblea misma en Dev env. También crear problema al depurar una versión particular. También versión de ensamblado .NET es importante, ya que, sin la versión DLL adecuada, la asamblea no se carga, y esto le ayudará en la depuración también.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top