各种 Microsoft.CodeQuality.* 分析仪之间有什么区别?

What is the difference between various Microsoft.CodeQuality.* analyzers?

我对 .NET Core 的各种代码分析器有点困惑。

如果您创建默认的 .NET Core Web 项目,您将获得 Microsoft.CodeAnalysis.Analyzers

此外,在 NuGet 上,还有 Microsoft.CodeQuality.Analyzers(请注意名称的细微差别)。安装后,我看到它包含更多规则。

最后,还有 Microsoft.CodeAnalysis.FxCopAnalyzers,似乎包含 Microsoft.CodeQuality.Analyzers

那么Microsoft.CodeAnalysis.AnalyzersMicrosoft.CodeQuality.AnalyzersMicrosoft.CodeAnalysis.FxCopAnalyzers之间到底是什么关系呢?我的项目应该有什么?

P.S。创建新项目后,我在 NuGet 中搜索 Microsoft.CodeAnalysis.Analyzers 包(它已经存在于我的项目中)。它找到它并声明我的项目有 v1.1,它需要将其升级到 v2.9.4。但是,根据 NuGet 的说法,v1.1 于 2015 年发布。这没有意义,因为我使用的是 VS2019,并且在 2015 年到 2019 年之间已经发布了很多此分析器。

但是,当我将软件包升级到 2.9.4 时 - 分析器具有与 v1.1 相同的 3 个规则。那么我到底要升级什么?

此处描述:https://github.com/dotnet/roslyn-analyzers/blob/master/README.md

总结:

  • Microsoft.CodeQuality.Analyzers 是用于 运行 分析器的包。

    This package contains common code quality improvement rules that are not specific to usage of any particular API

  • Microsoft.CodeAnalysis.Analyzers 适用于代码分析创建者。所以为了创建一个分析器。
  • Microsoft.CodeAnalysis.FxCopAnalyzers:这是此存储库的主要分析器包,其中包含所有已移植的 FxCop 代码分析规则 (CAxxxx)。