GendarmeにはAvoidAssemblyVersionMismatchRule
、次の説明があります。
このルールは、両方がアセンブリ内に存在する場合にが
[AssemblyVersion]
一致することを確認します。[AssemblyFileVersion]
両方の属性に異なるバージョン番号があると、アプリケーションのデプロイ後に混乱する可能性があります。
たとえば、このルールSystem.dll
は、次の属性を持つMicrosoft について警告します。
[assembly: AssemblyVersion("2.0.0.0")]
[assembly: AssemblyFileVersion("2.0.50727.3053")]
私は憲兵の規則に同意しません。これに従うと、Microsoft が使用するものと同様のバージョン管理スキームを使用できなくなります。
AssemblyFileVersion
ビルドごとに更新し、AssemblyVersion
公開インターフェースのみの変更、またはその他の主要な変更、AssemblyVersion
共通のプレフィックスをAssemblyFileVersion
共有していることを確認してください。
AssemblyVersion
そして、このバージョン管理スキームが、そもそもとを区別できるようにした設計上の理由だと思いますAssemblyFileVersion
。
両方のアセンブリ属性を強制的に等しくすることが良い方法である理由を思い付くことはできませんが、できるかもしれません! 私はあなたの意見に興味があります。
本当に正当な理由がない場合は、すぐに憲兵の開発者にルールを次のように変更するよう提案します。
このルールは、と がアセンブリ内に存在する場合に、
[AssemblyVersion]
とが共通の空でないプレフィックスを持っていることを確認します。[AssemblyFileVersion]