问题描述
在我的 .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
警告 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 中。
有关尚未移植的规则列表,请参见下文: