从 NuGet FxCop 分析器迁移到 .NET 分析器
.NET Compiler Platform(“Roslyn”)分析器的源代码分析取代了托管代码的传统分析。 许多传统分析 (FxCop) 规则已被重新编写为源分析器。
在 Visual Studio 2019 16.8 和 .NET 5.0 之前的版本中,这些分析器作为 Microsoft.CodeAnalysis.FxCopAnalyzers
NuGet 包提供。
从 Visual Studio 2019 16.8 和 .NET 5.0 开始,这些分析器包含在 .NET SDK 中。 如果不想迁移到 .NET 5+ SDK,或者更喜欢基于 NuGet 包的模型,则 Microsoft.CodeAnalysis.NetAnalyzers
NuGet 包中也提供了这些分析器。 对于按需版本更新,你可能更倾向于使用基于包的模型。
注意
第一方 .NET 分析器与目标平台无关。 即,项目不需要面向特定的 .NET 平台。 分析器适用于面向 net5.0
及早期 .NET 版本(如 netcoreapp
、netstandard
和 net472
)的项目。
迁移步骤
从版本 3.3.2
开始,不建议使用 Microsoft.CodeAnalysis.FxCopAnalyzers
NuGet 包。 请按照以下步骤将项目或解决方案从 Microsoft.CodeAnalysis.FxCopAnalyzers
迁移到 .NET 分析器:
卸载
Microsoft.CodeAnalysis.FxCopAnalyzers
NuGet 包启用或安装 .NET 分析器。 请注意,无需更改项目的目标平台。
启用其他规则:
Microsoft.CodeAnalysis.NetAnalyzers
与Microsoft.CodeAnalysis.FxCopAnalyzers
相比要传统得多。 与 FxCopAnalyzers 包不同,它只有几个正确性规则,这些规则默认作为生成警告启用。 可以通过自定义 AnalysisMode MSBuild 属性来启用其他规则。 例如,如果将属性设置为AllEnabledByDefault
,将默认启用所有适用的 CA 规则作为生成警告。<PropertyGroup> <AnalysisMode>AllEnabledByDefault</AnalysisMode> </PropertyGroup>