Blu*_*BSH 7 msbuild visual-studio dotnet-sdk .net-6.0
我有一个包含大量项目的解决方案,自从我们切换到 .NET6 以来,该解决方案构建得很好,然后突然我在 Visual Studio 中为每个项目收到此警告,但是它不会出现在 MSBuild 输出中,并且设置了分析器在构建上运行。知道如何追踪为什么会发生这种情况吗?作为我将 NET SDK 项目与 .NET6 结合使用这一事实的一部分,分析器会自动包含在内,因此据我所知,没有 Nuget 包引用?
警告 CS8032 无法从 C:\Users\defaultuser\.nuget\packages\microsoft.codeanalysis.analyzers\3.0.0\analyzers\dotnet\cs\Microsoft 创建分析器 Microsoft.CodeAnalysis.CSharp.Analyzers.MetaAnalyzers.CSharpReportDiagnosticAnalyzer 的实例.CodeAnalysis.CSharp.Analyzers.dll:无法从程序集“Microsoft.CodeAnalysis.Analyzers,Version=3.3.5.2003,Culture=neutral,PublicKeyToken=31bf3856ad364e35”加载类型“Microsoft.CodeAnalysis.Analyzers.MetaAnalyzers.ReportDiagnosticAnalyzer4”..
系统.TypeLoadException:无法从程序集 Microsoft.CodeAnalysis.Analyzers、Version=3.3.5.2003、Culture=neutral、PublicKeyToken=31bf3856ad364e35 加载类型 Microsoft.CodeAnalysis.Analyzers.MetaAnalyzers.ReportDiagnosticAnalyzer4。在 System.Reflection.RuntimeAssembly.GetType(RuntimeAssembly 程序集、字符串名称、布尔型 throwOnError、布尔型ignoreCase、ObjectHandleOnStack 类型) 在 System.Reflection.RuntimeAssembly.GetType(字符串名称、布尔型 throwOnError、布尔型ignoreCase) 在 Microsoft.CodeAnalysis.Diagnostics.AnalyzerFileReference .Extensions`1.GetAnalyzersForTypeNames(程序集分析器Assembly,IEnumerable1分析器类型名称,布尔值&reportedError)
我有类似的问题。在 .net6 上运行,但对旧版本的 Microsoft.CodeAnalysis.CSharp 有传递性 nuget 依赖性。
在我的宿主项目中,手动添加 Microsoft.CodeAnalysis.CSharp 最新版本(撰写本文时为 4.4.0)即可解决问题。所有 CS8032 警告现在都消失了。
小智 2
在最新的 VS2022 上升级 .net 5-6 - 解决方案已经发展了近 10 年:
有一个项目是许多其他项目的依赖项,但仍然引用此 nuget 包:Microsoft.AspNetCore.Mvc v 2.2.0。
由于它是最新版本,因此并不需要更新,但已不再在任何地方使用。因此,到目前为止,它一直在雷达下飞行。
从该项目中删除这个 nuget 包就消除了我所有的 CS8032 警告。
| 归档时间: |
|
| 查看次数: |
5320 次 |
| 最近记录: |