使用 .net 标准项目配置代码分析

Configuration of code analysis with .net standard project

我们有一个自定义规则集(从早期的 .net 框架项目创建)

我将规则集添加到我们新项目的文件中:

<PropertyGroup>
<CodeAnalysisRuleSet>c:\CodeAnalysis\CustomCodeAnalysisRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>

我在项目上安装了 Microsoft.CodeAnalysis.FxCopAnalysers nuget 包。

当 运行 代码分析时,我发现我们自定义规则集中的一些规则被检查,而另一些则没有。我发现在解决方案资源管理器中的 Dependencies > Analyzers > Microsoft.CodeQuality.Analysers 下有一个规则列表。 那些似乎是被检查的那些,因为那里没有列出未经分析器验证的规则。

起初我以为我们的规则集被完全忽略了,但如果我修改规则集中 "working" 规则之一的严重性状态(也列在解决方案资源管理器中的分析器下),则严重性也在另一个位置发生变化,因此在这两个规则的位置之间有一个 "link"。

为什么我们规则集中的某些规则(例如 CA1062、CA1031 和 CA1047)未在“依赖项”>“分析器”> Microsoft.CodeQuality.Analysers 下列出,而其他规则在(例如:CA1061、CA1063、CA1064 等)下列出?

最重要的是,我如何确保自定义规则集中的所有规则都经过验证?

Microsoft 文档 (https://docs.microsoft.com/en-us/visualstudio/code-quality/install-roslyn-analyzers?view=vs-2017) 说:

Find the analyzer package you want to install on www.nuget.org. For example, you may want to install the Microsoft FxCop analyzers to check your code for security and performance issues, among others.

据我了解(以及当我在 nuget 包管理器中搜索 "code analysis" 时观察到的),有许多可用的分析器(仅来自 Microsoft,但也来自其他提供商),但 Microsoft 似乎总是指 FxCopAnalysers例如。

但我仍然不知道我是否必须安装以及安装哪一个来检查我们所有的自定义规则。

根据我的发现,旧 FxCop 的所有规则似乎还没有移植到新的 roslyn FxCop 分析器中。

https://github.com/dotnet/roslyn-analyzers/issues/1624

https://github.com/dotnet/roslyn-analyzers/issues?page=1&q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3AFxCop-Port