好代码是管出来的——.Net中的代码规范工具及使用 (2)

  SonarAnalyzer.CSharp是一个非常强大的代码分析器,它现阶段一共有343条规范并且主要是面向了代码的使用,包含了缺陷检测、性能、约定、错误处理、事件、异步、测试等等多类规则,规则参见:https://rules.sonarsource.com/csharp
  另外SonarAnalyzer还有针对其它语言的分析器,并且还保持持续更新,项目主页:https://www.sonarsource.com/products/codeanalyzers/sonarcsharp.html

在.Net Framework项目中使用代码分析器

  本文使用StyleCop.Analyzers为例,对项目添加代码分析器。

安装StyleCop Analyzer

  在VS中使用Roslyn的代码分析器时,其中一种方法就是通过Nuget包的方式在每一个项目中添加相应的分析器,下面就以StyleCop Analyzer为例进行介绍:
  通过包管理器安装StyleCop.Analyzers:

  

好代码是管出来的——.Net中的代码规范工具及使用

  当完成安装后分析器就回对开打的代码文件进行分析,下图是StyleCop Analyzer对默认文件的分析结果:

  

好代码是管出来的——.Net中的代码规范工具及使用

  同时在项目的References/Analyzers下能看到刚安装的分析器:

  

好代码是管出来的——.Net中的代码规范工具及使用

设置规则

  每一个分析器都有自己的规则集,但不是每一项规则都适合自己或团队,所以需要对相应的规则集的严重程度,严重程度分别有:None、Hidden、Info、Warning、Error,其中None是忽略规则不检测,Hidden是检测但隐藏错误。
  在VS中对.Net Framework项目的规则设置只需要在Analyzers的右键菜单中选择“Open Active Rule Set”即可:

  

好代码是管出来的——.Net中的代码规范工具及使用

  然后就会打开一个ruleset文件的编辑窗口,窗口中包含了已生效的规则集合:

  

好代码是管出来的——.Net中的代码规范工具及使用

  注:除StyleCop Analyzers外,其它是VS中内置的规则集(最小需求规则集),VS内置规则集信息可以选中其中一条规则,然后在属性窗口中查看(包括规则集描述、名称、资源文件、程序集所在路径等等):

  

好代码是管出来的——.Net中的代码规范工具及使用

  通过ruleset编辑窗口可以简单的通过勾选、设置严重程度来编辑规则,当修改完成保存时,会根据项目名称创建一个ruleset文件:

  

好代码是管出来的——.Net中的代码规范工具及使用

  修改规则严重程度后原有代码会出现一下错误信息:

  

好代码是管出来的——.Net中的代码规范工具及使用

  同时生成了一个名称为App.ruleset的规则集文件:

  

好代码是管出来的——.Net中的代码规范工具及使用

将自定义的规则使用到整个解决方案

  上面的方式需要对每一个项目都进行独立配置,不但工作量大,而且容易出错导致不同项目中规则集不一致,为了解决这个问题,需要在一个解决方案中共享同一个规则集文件。
  1. 将已编辑好的规则集文件转移至一个“固定”位置(App.ruleset文件放置在与项目目录平行的目录中):

   

好代码是管出来的——.Net中的代码规范工具及使用

好代码是管出来的——.Net中的代码规范工具及使用

  2. 在项目属性窗口中的,"Code Analysis"选项卡中设置项目的规则集,使用放在固定位置的规则集:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsppyp.html