FxCopAnalyzers:无法创建分析器实例

FxCopAnalyzers: An instance of analyzer cannot be created

我正在尝试在我的项目中安装 fxcop analyzers。但是,在添加和恢复 nuget 包后,构建项目会导致数百条形式为

的警告
1>CSC : warning CS8032: An instance of analyzer Microsoft.CodeAnalysis.VersionCheckAnalyzer.AnalyzerVersionCheckAnalyzer cannot be created from 
C:\<MyProjectPath>\packages\Microsoft.CodeAnalysis.VersionCheckAnalyzer.2.9.3\analyzers\dotnet\Microsoft.CodeAnalysis.VersionCheckAnalyzer.dll : 
Could not load file or assembly 'Microsoft.CodeAnalysis, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. 
The system cannot find the file specified..

但是,如果我查看路径 packages\Microsoft.CodeAnalysis.VersionCheckAnalyzer.2.9.3\analyzers\dotnet,我会看到提到的 dll 确实存在。

有谁知道可能出了什么问题吗?也许有些依赖性没有得到满足。但如果是这样,我怎么知道是哪个?我正在使用 Visual Studio 2019.

根据您的包路径C:\<MyProjectPath>\packages,您的项目面向.net 框架。也许您有类似的问题,例如 this one.

我可以在 VS2019 中的一个 .net Framework 项目中重现相同的问题,为了解决这个问题,我将 Microsoft.Net.Compilers 包更新到最新的稳定版本 (3.1.1),然后那些警告消失了。因此,如果您引用了 Microsoft.Net.Compilers 包,请将其更新到最新版本。如果不是,请添加对其最新版本的引用。

如果您的 Microsoft.CodeAnalysis.FxCopAnalyzers 版本对于您的 Visual Studio 版本而言太高,您会收到此警告

warning CS8032 ...

要查找支持的最高版本,请参阅此文档:在 Visual Studio -> FxCopAnalyzers package versions

中安装 FxCop 分析器

我已经通过升级以下 nugger 摆脱了这些错误

Microsoft.Net.Compilers