Gendarme tiene un AvoidAssemblyVersionMismatchRule
con la siguiente descripción:¿Hay buenas razones para permitir que AssemblyVersion y AssemblyFileVersion coincidan?
Esta regla comprueba que el
[AssemblyVersion]
coincide con el[AssemblyFileVersion]
cuando ambos están presentes en el interior de un ensamblaje. Tener diferentes números de versión en ambos atributos puede ser confuso una vez que se implementa la aplicación.
Por ejemplo, esta regla podría advertir sobre System.dll
de Microsoft, que tiene los siguientes atributos:
[assembly: AssemblyVersion("2.0.0.0")]
[assembly: AssemblyFileVersion("2.0.50727.3053")]
no estoy de acuerdo con la regla de Gendarme. Después lo haría imposible utiliza un esquema de versiones similar a la utilizada por Microsoft, es decir
- actualización
AssemblyFileVersion
en cada generación, - cambio
AssemblyVersion
sólo en la interfaz pública o cambios de otro modo principales, - asegúrese de que
AssemblyVersion
yAssemblyFileVersion
comparten un prefijo común,
y creo que este esquema de versiones es la razón por la que el diseño se hizo posible diferenciar entre AssemblyVersion
y AssemblyFileVersion
en primer lugar.
No se me ocurre una razón por la cual forzar los dos atributos de ensamblaje sean iguales es una buena práctica, ¡pero tal vez tú puedas! Me gustaría conocer sus opiniones.
Si, efectivamente, no hay una buena razón, pronto voy a sugerir que los desarrolladores Gendarme para cambiar la regla para
Esta regla comprueba que el
[AssemblyVersion]
y[AssemblyFileVersion]
tienen un prefijo común, no vacío cuando ambos están presentes dentro de un ensamblaje.
opinión == Wiki de la comunidad –