概述
编码中会用一些基于Roslyn的编码规范工具 如:StyleCop.Analyzers,但不是每一项规则都是适合自己或团队,所以都会对规则进行微调,但是StyleCop.Analyzers规则默认针对单个项目,我们肯定希望规则统一管理,防止项目间配置不同导致约束不一致。本文将介绍如何将自定义规则应用到整个解决方案。
- 利用Nuget安装StyleCop.Analyzers
安装成功后能在分析器下面看到多了两项,所有规则在下图的StyleCop.Analyzers中
- 展开StyleCop.Analyzers 选择想要配置的规则右键设置规则集严重性。
设置成功过后项目下会产生一个.ruleset结尾的规则文件。(PS~ .net framework的项目则右键StyleCop.Analyzers 会有一个打开规则设置的选项能生成此文件)
- 有了规则文件后我们就要把所有项目的StyleCop.Analyzers配置指向这同一个规则文件即可,.net framework的项目->属性->代码分析手动选择文件即可,真是很方便,netcore我却没找到代码分析选项,可能目前还没支持手动选择配置(如果有知道确切为什么请告知一下)。重点来了,此时我们右键项目编辑csproj。添加上规则文件位置即可。
打开后默认如下图,有两条配置都指向了相对位置的.ruleset文件。
为了工程的规范性推荐大家在解决方案下新建目录放置此类规则文件。下图我把之前的ruleset文件放到解决方案下config目录并且重命名为StyleCop.releset。然后在工程中也添加了此项(这步可以省,只不过感觉工程配置能在vs中能看舒服些)。
此时我们配置如下图,设置相对目录,两个点表示上一层,我的项目文件夹距离解决方案config有两层所以写了两遍。
- 此时我们可以每个项目安装StyleCop.Analyzers,然后直接修改项目.csproj文件指向规则文件。在任何一个项目中更改的规则都会保存到同一个规则文件里面,其他项目也会直接生效配置。
- 如果对每个解决方案的项目都要修改配置感到麻烦,可以考虑去StyleCop.Analyzers的github 拉取源码更改默认配置或增加新的规则,然后自己发布nuget,以后可以统一版本控制每个解决方案的编码规则。