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

Ang*_*ker 5 .net c# code-analysis .net-core roslyn-code-analysis

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

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

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

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

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

PS 创建新项目后,我在 NuGet 中搜索Microsoft.CodeAnalysis.Analyzers包(该包已存在于我的项目中)。它找到它并指出我的项目有 v1.1 并且需要将其升级到 v2.9.4。然而,根据 NuGet 的说法,v1.1 于 2015 年发布。这没有任何意义,因为我使用的是 VS2019,并且该分析器在 2015 年至 2019 年间发布了大量版本。

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

Jul*_*ian 4

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

总之:

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

    该包包含通用代码质量改进规则,这些规则不特定于任何特定 API 的使用

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