Microsoft.CodeAnalysis.FxCopAnalyzers 和 Microsoft.CodeAnalysis 有什么区别?

What's the difference between Microsoft.CodeAnalysis.FxCopAnalyzers and Microsoft.CodeAnalysis?

我想在我的一个 C# 项目中安装代码分析,似乎人们将代码分析添加到 .NET Core 项目的方式是使用 NuGet 包 Microsoft.CodeAnalysis.FxCopAnalyzers.

不过,我还从 Microsoft.CodeAnalysis 命名空间中找到了其他 NuGet 包,即 Microsoft.CodeAnalysisMicrosoft.CodeAnalysis.CSharpMicrosoft.CodeAnalysis.Features

FxCopAnalyers 软件包相比,这些其他软件包的用途是什么?包说明不是很清楚,所以不知道他们的用例是什么

编辑 2021: 从当前 documentation 开始:在 Visual Studio 2019 16.8 和 .NET 5.0 之前,代码分析器作为 Microsoft.CodeAnalysis.FxCopAnalyzers NuGet 提供包裹。从 Visual Studio 2019 16.8 和 .NET 5.0 开始,这些分析器包含在 .NET SDK 中。它们也可以作为 Microsoft.CodeAnalysis.NetAnalyzers NuGet 包使用。请考虑从 FxCop 分析器迁移到 .NET 分析器。

Microsoft.CodeAnalysis.FxCopAnalyzers 只是一组分析器,它像其他一些分析器、IDE 等一样分析您的代码。这个包分析您的代码的性能、设计问题、等等等等。

但是,Microsoft.CodeAnalysis.CSharpMicrosoft.CodeAnalysis.VisualBasicMicrosoft.CodeAnalysis.Workspaces 和其他类似的包允许您以编程方式分析输入代码,编写自定义静态代码分析器和规则集,研究语义和句法代码模型,并使用一些有用的逻辑来扩展 Visual Studio 功能,等等,以及等等。