在解决方案级别管理Microsoft和StyleCop代码分析规则

时间:2018-10-18 06:53:22

标签: .net visual-studio .net-core code-analysis stylecop

我正在尝试将代码分析引入我们的项目,因此我从解决.NET Framework和.NET Standard项目开始。

我遵循了this tutorial,但总而言之,这是我所做的:

  • 在解决方案级别添加了SolutionName.ruleset文件
  • 在解决方案级别添加了stylecop.json文件,并将该文件作为每个项目中的链接引用
  • 在每个项目中安装了StyleCop.Analyzers 1.1.0-beta009 Nuget软件包
  • 在.NET Standard项目中安装Microsoft.NetCore.Analyzers,在.NET Framework项目中安装Microsoft.NetFramework.Analyzers

首先,Visual Studio看起来有问题,但这可能是由于我不了解的一些黑魔法。

如果我在解决方案资源管理器中单击规则集文件,则会在每个规则组的多个复选框上打勾和取消打勾,然后重新构建以查看“错误列表”窗口中的更改,但过了很短的时间它不再工作了。我什至试图取消选择所有内容,重新构建,并且所有警告仍在此处。使它们消失的唯一方法是关闭Visual Studio。

如屏幕截图所示,我扩展了名为ConfigLibrary的.NET Standard库项目,以查看它具有多个关联的分析器。

enter image description here

问题在于所有这些规则似乎都来自Nuget程序包的DLL C:\Users\user\.nuget\packages\stylecop.analyzers\1.1.0-beta009\analyzers\dotnet\cs\StyleCop.Analyzers.dll

如果我在规则集文件中取消选择StyleCop.Analyzers规则,则不会执行任何操作,并且如果我使用搜索文本框搜索这些规则代码,则表明未选择它们。但是最后这些规则仍然适用...

当我尝试为所有项目卸载StyleCop.Analyzers Nuget软件包时,即使在规则集文件中选择了规则,我也一无所获。

我的规则集文件经常由我不知道执行什么过程自动重写。而且即使我重新启动Visual Studio之后,这些规则也不再起作用

enter image description here

那么对于.NET Framework和.NET Core项目,在解决方案级别处理某些代码分析规则的正确方法是什么?

如何避免分析器的DLL覆盖我在规则集文件中定义的规则?有没有解决方法可以使Visual Studio正确刷新应用的规则? BuildRebuildRun code analysis on solution都是错误的,只有重新启动Visual Studio才能起作用,但是这是一个繁重的解决方案,尤其是对于所有这些规则...

是我不了解基本概念还是使用.NET Core遇到一些奇怪的错误?谢谢

1 个答案:

答案 0 :(得分:0)

查找规则集文件并将其复制到您的存储库,将其重命名为“ My Rules.ruleset”或其他内容。

例如,以这个为例:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Team Tools\Static Analysis Tools\Rule Sets\MinimumRecommendedRules.ruleset

为要根据规则验证的项目安装软件包。

对于所有这些项目:

  • 转到属性,“代码分析”页面
  • 打开“运行此规则集:”下拉框,然后选择“”。
  • 选择规则集文件。
  • 将规则集文件添加到您的解决方案中并打开它。
  • 调整规则。
  • 构建!