【发布时间】:2019-09-27 22:16:06
【问题描述】:
我对 .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 条规则。那我到底要升级什么?
【问题讨论】:
-
我不太确定您所说的 MS.CA.Analyzers 是在默认 Web 项目中创建的。我不这么认为。我只看到 MS.AspNetCore 相关的分析器。无论如何,github page 是一个很好的起点。我同意名字有点混乱。 MS.CA.Analyzers 包含专门针对 MS.CA 中的 API 的分析器,它们是 C# 编译器的 API。我通常会说你只需要 FxCopAnalyzers,MS.CQ.Analyzers 是由那个包带来的。
-
@MikeZboray 来自一个全新的项目。 i.imgur.com/F74ceUW.png
-
现在还有
Microsoft.CodeAnalysis.CSharp.Analyzers、Microsoft.CodeAnalysis.NetAnalyzers和Microsoft.CodeAnalysis.CSharp.NetAnalyzers以及所有其他人 - 并且不要忘记 StyleCop 规则 - 哎呀
标签: c# .net .net-core code-analysis roslyn-code-analysis