Microsoft.CodeAnalysis.Workspaces.dll中的“System.InvalidCastException”

时间:2018-03-13 15:52:16

标签: c# visual-studio dll visual-studio-2017

我有一个简单的WPF app,其中包含QtSharphttps://github.com/ddobrev/QtSharp)库。

问题是我的VisualStudio 2017 v15.5.7每次尝试为其QtSharp加载DLLs intelliSense时都会崩溃。有人知道如何防止崩溃或忽视f.e.一个System.InvalidCastException?我已经停止ReSharper来排除这一点。注入Screenshot时会显示以下StackTracedebugger

这是一种非常奇怪的行为,因为在某些methodsoverloads上,它的工作就像一个没有任何问题的魅力,并且在几分钟后或(例如)使用AddWidget() {{1它崩溃了。

截图

liveCrash

crash

Screenshot

栈跟踪

method

调试输出

   bei Roslyn.Utilities.EnumUtilities.ConvertEnumUnderlyingTypeToUInt64(Object value, SpecialType specialType)
   bei Microsoft.CodeAnalysis.SymbolDisplay.AbstractSymbolDisplayVisitor.AddNonFlagsEnumConstantValue(INamedTypeSymbol enumType, Object constantValue)
   bei Microsoft.CodeAnalysis.SymbolDisplay.AbstractSymbolDisplayVisitor.AddEnumConstantValue(INamedTypeSymbol enumType, Object constantValue, Boolean preferNumericValueOrExpandedFlags)
   bei Microsoft.CodeAnalysis.SymbolDisplay.AbstractSymbolDisplayVisitor.AddNonNullConstantValue(ITypeSymbol type, Object constantValue, Boolean preferNumericValueOrExpandedFlagsForEnum)
   bei Microsoft.CodeAnalysis.CSharp.SymbolDisplayVisitor.AddConstantValue(ITypeSymbol type, Object constantValue, Boolean preferNumericValueOrExpandedFlagsForEnum)
   bei Microsoft.CodeAnalysis.CSharp.SymbolDisplayVisitor.VisitParameter(IParameterSymbol symbol)
   bei Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol.Accept(SymbolVisitor visitor)
   bei Microsoft.CodeAnalysis.CSharp.SymbolDisplay.ToDisplayParts(ISymbol symbol, SemanticModel semanticModelOpt, Int32 positionOpt, SymbolDisplayFormat format, Boolean minimal)
   bei Microsoft.CodeAnalysis.CSharp.SymbolDisplay.ToMinimalDisplayParts(ISymbol symbol, SemanticModel semanticModel, Int32 position, SymbolDisplayFormat format)
   bei Microsoft.CodeAnalysis.CSharp.Symbol.Microsoft.CodeAnalysis.ISymbol.ToMinimalDisplayParts(SemanticModel semanticModel, Int32 position, SymbolDisplayFormat format)
   bei Microsoft.CodeAnalysis.CSharp.SignatureHelp.AbstractCSharpSignatureHelpProvider.Convert(IParameterSymbol parameter, SemanticModel semanticModel, Int32 position, IDocumentationCommentFormattingService formatter, CancellationToken cancellationToken)
   bei Microsoft.CodeAnalysis.CSharp.SignatureHelp.InvocationExpressionSignatureHelpProvider.c__DisplayClass14_0.b__1(IParameterSymbol p)
   bei System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
   bei System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   bei System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   bei Microsoft.CodeAnalysis.CSharp.SignatureHelp.InvocationExpressionSignatureHelpProvider.ConvertMethodGroupMethod(IMethodSymbol method, InvocationExpressionSyntax invocationExpression, SemanticModel semanticModel, ISymbolDisplayService symbolDisplayService, IAnonymousTypeDisplayService anonymousTypeDisplayService, IDocumentationCommentFormattingService documentationCommentFormattingService, CancellationToken cancellationToken)
   bei Microsoft.CodeAnalysis.CSharp.SignatureHelp.InvocationExpressionSignatureHelpProvider.c__DisplayClass11_0.b__7(IMethodSymbol m)
   bei System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext()
   bei System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   bei System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   bei Microsoft.CodeAnalysis.CSharp.SignatureHelp.InvocationExpressionSignatureHelpProvider.GetMethodGroupItems(InvocationExpressionSyntax invocationExpression, SemanticModel semanticModel, ISymbolDisplayService symbolDisplayService, IAnonymousTypeDisplayService anonymousTypeDisplayService, IDocumentationCommentFormattingService documentationCommentFormattingService, ISymbol within, IEnumerable`1 methodGroup, CancellationToken cancellationToken)
   bei Microsoft.CodeAnalysis.CSharp.SignatureHelp.InvocationExpressionSignatureHelpProvider.d__5.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
   bei System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   bei System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   bei Microsoft.CodeAnalysis.SignatureHelp.AbstractSignatureHelpProvider.d__14.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
   bei System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   bei Microsoft.CodeAnalysis.Editor.Implementation.IntelliSense.SignatureHelp.Controller.Session.d__11.MoveNext()

1 个答案:

答案 0 :(得分:0)

问题是由于错误的Qt version。我使用 5.10.1 并且 5.9.4 它正在按预期工作!