0

我将一个 Visual Studio 2010 项目转换为 Visual Studio 2015,并且转换工作正常,所以我决定将目标框架更改为 .NET 4.6.1,看看会不会有什么问题。

然后我收到以下错误:

分析器“Microsoft.CodeAnalysis.Diagnostics.VisualBasic.VisualBasicCompilerDiagnosticAnalyzer”引发以下异常:“在以下上下文中发生异常:编译:ArtDepInterface System.InvalidOperationException:序列在 System.Linq.Enumerable.First[TSource](IEnumerable'1源)在 System.Linq.ImmutableArrayExtensions.First[T](ImmutableArray'1 immutableArray) 在 Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation.IsIOperationFeatureEnabled() 在 Microsoft.CodeAnalysis.Diagnostics.AnalyzerExecutor.<>c__DisplayClass33_0.b__0() 在 Microsoft。 CodeAnalysis.Diagnostics.AnalyzerExecutor.ExecuteAndCatchIfThrows_NoLock(DiagnosticAnalyzer 分析器,Action 分析,Nullable'1 信息)

它有一个错误代码AD0001,所以我查了一下,发现另一个论坛帖子,但它ArgumentNullException不是一个,InvalidOperationException所以我看不出它是相关的。

有没有人遇到过这个问题或知道如何纠正它?

我会很感激任何意见或方向。谢谢!

更新: 我尝试使用性能分析器,它抛出了与我内部构建的 DLL 有关的各种错误,说它找不到任何公共方法。如果这导致答案,我会添加它。

4

2 回答 2

1

我在将现有(但以前迁移的)2015 解决方案从 .NET 2 更新到 .NET 4.5.2 时遇到了同样的问题。出于某种原因,7 个项目中只有 1 个抛出了这个异常。

我不必像@Hawkeye 那样删除所有的 DLL。我刚刚清理了解决方案,关闭了 VS,然后重新打开并重建,一切都很好。

我认为它正在做一些事情,比如将旧的分析器缓存在内存中,所以会感到困惑。

于 2018-04-17T11:39:57.613 回答
1

好的,所以在尝试运行“分析”菜单项下的“性能分析器”后,它基本上表明它不喜欢我作为参考添加的内部构建的 DLL。

所以解决方案是一个一个地删除我所有的DLL,然后重新添加它们。然后我遇到了一些奇怪的错误,我不知道该怎么办(导致它无法构建),所以我关闭了解决方案,重新打开它,它构建得很好,然后分析器错误消失了。

所以简而言之,它似乎摆脱了分析错误,你必须删除所有的 DLL,关闭,然后重建项目。

我不知道为什么这是一个问题,但至少错误消息已经消失并且分析器功能现在可以工作。我希望其他人觉得这很有用!

于 2016-09-14T00:20:34.037 回答