我对 .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
之间到底有什么关系呢?我的项目应该有什么?
附注创建新项目后,我在 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)。
关于c# - 各种 Microsoft.CodeQuality.* 分析器之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58141825/