我正在尝试将代码分析引入我们的项目,因此我从解决.NET Framework和.NET Standard项目开始。
我遵循了this tutorial,但总而言之,这是我所做的:
SolutionName.ruleset
文件stylecop.json
文件,并将该文件作为每个项目中的链接引用StyleCop.Analyzers 1.1.0-beta009
Nuget软件包Microsoft.NetCore.Analyzers
,在.NET Framework项目中安装Microsoft.NetFramework.Analyzers
首先,Visual Studio看起来有问题,但这可能是由于我不了解的一些黑魔法。
如果我在解决方案资源管理器中单击规则集文件,则会在每个规则组的多个复选框上打勾和取消打勾,然后重新构建以查看“错误列表”窗口中的更改,但过了很短的时间它不再工作了。我什至试图取消选择所有内容,重新构建,并且所有警告仍在此处。使它们消失的唯一方法是关闭Visual Studio。
如屏幕截图所示,我扩展了名为ConfigLibrary
的.NET Standard库项目,以查看它具有多个关联的分析器。
问题在于所有这些规则似乎都来自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之后,这些规则也不再起作用
那么对于.NET Framework和.NET Core项目,在解决方案级别处理某些代码分析规则的正确方法是什么?
如何避免分析器的DLL覆盖我在规则集文件中定义的规则?有没有解决方法可以使Visual Studio正确刷新应用的规则? Build
,Rebuild
和Run code analysis on solution
都是错误的,只有重新启动Visual Studio才能起作用,但是这是一个繁重的解决方案,尤其是对于所有这些规则...
是我不了解基本概念还是使用.NET Core遇到一些奇怪的错误?谢谢
答案 0 :(得分:0)
查找规则集文件并将其复制到您的存储库,将其重命名为“ My Rules.ruleset”或其他内容。
例如,以这个为例:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Team Tools\Static Analysis Tools\Rule Sets\MinimumRecommendedRules.ruleset
为要根据规则验证的项目安装软件包。
对于所有这些项目: