12

我正在尝试将Microsoft.CodeAnalysis.FXCopAnalyzers(最新稳定版本)添加到我的 ASP.NET 项目中。当我通过 NuGet 安装它时,会出现大量错误,例如:

无法从 \packages\Microsoft.CodeQuality.Analyzers.2.6.3\analyzers\dotnet\cs\Microsoft.CodeQuality.Analyzers.dll 创建分析器 Microsoft.CodeQuality.Analyzers.ApiDesignGuidelines.AbstractTypesShouldNotHaveConstructorsAnalyzer 的实例:无法加载文件或程序集'Microsoft.CodeAnalysis, Version=2.6.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 或其依赖项之一。系统找不到指定的文件。无法从 \packages\Microsoft.CodeQuality.Analyzers.2.6.3\analyzers\dotnet\cs\Microsoft.CodeQuality.Analyzers 创建分析器 Microsoft.CodeQuality.Analyzers.ApiDesignGuidelines.AvoidEmptyInterfacesAnalyzer 的实例.dll:无法加载文件或程序集“Microsoft.CodeAnalysis,Version=2.6.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。系统找不到指定的文件。无法从 \packages\Microsoft.CodeQuality.Analyzers.2.6.3\analyzers\dotnet\cs\Microsoft.CodeQuality.Analyzers 创建分析器 Microsoft.CodeQuality.Analyzers.ApiDesignGuidelines.CancellationTokenParametersMustComeLastAnalyzer 的实例.dll:无法加载文件或程序集“Microsoft.CodeAnalysis,Version=2.6.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。该系统找不到指定的文件.. Version=2.6.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35' 或其依赖项之一。该系统找不到指定的文件.. Version=2.6.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35' 或其依赖项之一。该系统找不到指定的文件..

注意:为简洁起见,我省略了 127 个错误。它们都非常相似。不过,需要注意的一点是,并非所有分析器都在 Microsoft.CodeQuality 命名空间中。有些在 Microsoft.NetCore 中,有些在 Microsoft.NetFramework 中。

所以我说好的,我必须先安装Microsoft.CodeAnalysis v2.6.0.0。这似乎很奇怪,这不是 NuGet 自动安装的依赖项,而是无论如何。

所以我还原了我在 Git 中所做的所有更改,重新打开解决方案,安装 Microsoft.CodeAnalysis v2.6.0.0,然后安装最新的稳定版 Microsoft.CodeAnalysis.FXCopAnalyzers。

同样的错误!

当我查看 packages/Microsoft.CodeAnalysis.2.6.0 时,我注意到那里没有 .dll。安装它的正确方法是什么?安装 Microsoft.CodeAnalysis 是否是正确的解决方案?为什么安装时没有自动安装 Microsoft.CodeAnalysis.FXCopAnalyzers 的依赖?这不是包管理器的全部意义吗?我的问题太多,答案太少。请帮忙。

4

3 回答 3

9

Roslyn 分析器 github 项目上的这个问题建议添加对Microsoft.Net.Compilers v2.6.1 的引用。我在 Microsoft.CodeAnalysis.FXCopAnalyzers 的依赖链中的任何地方都找不到这个包,但我注意到我的项目中安装了 1.0.0 版。我删除了软件包并安装了 v2.10.0,现在一切似乎都按预期工作了。

于 2019-01-28T18:17:53.297 回答
5

对于将来遇到此问题的任何人,只是指出可能发生这种情况的原因之一是因为 VS 已过时。

如果上述解决方案没有解决问题,则重新安装或更新 VS可能会解决问题。

于 2020-12-03T11:56:45.830 回答
1

添加 *.csproj

<PropertyGroup>
  <OutputType>Exe</OutputType>
  <TargetFramework>netcoreapp3.1</TargetFramework>
  <EnableNETAnalyzers>true</EnableNETAnalyzers>
  <AnalysisMode>AllEnabledByDefault</AnalysisMode>
  <AnalysisLevel>latest</AnalysisLevel>
</PropertyGroup>
于 2021-07-10T01:45:30.847 回答