宪兵有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]