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

标签 c# .net .net-core code-analysis roslyn-code-analysis

我对 .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 之间到底有什么关系呢?我的项目应该有什么?

附注创建新项目后,我在 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/

相关文章:

c# - 使用 Newtonsoft.Json 使用两个不同的 JsonConverter 序列化 C# 对象

.net - 如何访问位图图像中的每个字节

c# - .Net Core 中的异步服务器套接字 - 如何返回结果?

c# - WPF 中的键绑定(bind)

c# - Xamarin 如何仅在代码中绑定(bind)文本颜色

c# - 什么是 C fread() 的 C# 模拟?

c# - AddOAuth linkedin dotnet core 2.0

c# - C# 考试 70-483 引用书的例子有错吗? (父/子线程)

c# - 如何在C#中获取接口(interface)的当前MTU

dependency-injection - 如何在 Startup 类之外访问 IServiceCollection 和/或 IServiceProvider?