关于 Microsoft.CodeAnalysis.NetAnalyzers 和 FxCop 分析器的问题

问题描述

在我的 .net 项目(目标框架 4.7)中,在代码分析选项卡中,我看到 Run on build 被选中。所以我能够看到一些 FxCop 警告。但是当我检查 nuGet 包时,我看到没有安装 Microsoft.CodeAnalysis.FxCopAnalyzers。所以我的第一个问题是当 FxCopAnalyzers nuget 包没有安装时,警告是如何显示的?

现在移动,当我升级到 VS2019 时,出现以下错误

Warning CA0507 Post-build Code Analysis (FxCopCmd.exe) has been deprecated in favor of FxCop analyzers

所以我用谷歌搜索,发现不再支持 FxCopAnalyzers,取而代之的是 Microsoft.CodeAnalysis.NetAnalyzers。

我做了这里提到的步骤https://github.com/dotnet/roslyn-analyzers

  1. 安装包

  2. 通过在记事本中编辑项目文件来完成此操作。

    enter image description here

警告 CA050 现在消失了,但我没有收到之前出现的任何警告。我期待 Microsoft.CodeAnalysis.NetAnalyzers 生成与之前相同的警告集(即使我不知道它是怎么来的)。我错过了什么?我不确定 Microsoft.CodeAnalysis.NetAnalyzers 是否在做它的工作。

提前致谢。

解决方法

我的名声太小,无法发表评论。我建议阅读此内容:https://docs.microsoft.com/en-us/visualstudio/code-quality/net-analyzers-faq?view=vs-2019

TLDR:用作 Roslyn 分析器时的 FxCop 与 Visual Studio 中的 FxCop(旧版 FxCop)不同。旧版 FxCop 中的一些规则出现在较新的 FxCop 中。

有关尚未移植的规则列表,请参见下文:

https://docs.microsoft.com/en-us/visualstudio/code-quality/fxcop-unported-rules-may-get-ported?view=vs-2019

https://docs.microsoft.com/en-us/visualstudio/code-quality/fxcop-unported-deprecated-rules?view=vs-2019

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...