Gendarme ha un AvoidAssemblyVersionMismatchRule
con la seguente descrizione:Esistono validi motivi per far corrispondere AssemblyVersion e AssemblyFileVersion?
Questa regola controlla che il
[AssemblyVersion]
corrisponde alla[AssemblyFileVersion]
quando entrambi sono presenti all'interno di un assieme. Avere numeri di versione diversi in entrambi gli attributi può creare confusione una volta che l'applicazione è stata distribuita.
Ad esempio, questa regola dovrebbe mettere in guardia sul System.dll
di Microsoft, che ha i seguenti attributi:
[assembly: AssemblyVersion("2.0.0.0")]
[assembly: AssemblyFileVersion("2.0.50727.3053")]
Non sono d'accordo con la regola del Gendarme. seguito sarebbe l'impossibilità di utilizzare uno schema di controllo delle versioni simile a quello utilizzato da Microsoft, che è
- aggiornamento
AssemblyFileVersion
su ogni costruzione, - cambiamento
AssemblyVersion
solo su un'interfaccia pubblica o comunque grandi cambiamenti, - assicurarsi che
AssemblyVersion
eAssemblyFileVersion
condivide un prefisso comune,
e penso che questo schema di controllo delle versioni è la ragione per cui il design è stato reso possibile distinguere tra AssemblyVersion
e AssemblyFileVersion
in primo luogo.
Non riesco a trovare un motivo per cui forzare entrambi gli attributi di assemblaggio a essere uguali è una buona pratica, ma forse è possibile! Sarei interessato alle vostre opinioni.
Se, infatti, non v'è alcuna buona ragione, io presto suggerisco gli sviluppatori Gendarme di cambiare la regola per
Questa regola controlla che il
[AssemblyVersion]
e[AssemblyFileVersion]
hanno un comune, il prefisso non vuoto quando entrambi sono presenti all'interno di un assieme.
opinione == community wiki –