调试Visual Studio Extension引发的异常

时间:2016-09-12 07:38:41

标签: visual-studio debugging visual-studio-2015 visual-studio-extensions

我正在使用一些扩展程序运行Visual Studio 2015 我正在尝试调试以下错误:

An exception has been encountered. This may be caused by an extension

错误记录在ActivityLog.xml

440 ERROR A MEF Component threw an exception at runtime: System.InvalidCastException: Unable to cast object of type 'System.Reflection.RuntimeMethodInfo' to type 'System.Reflection.ConstructorInfo'. 
  at Microsoft.VisualStudio.Composition.Reflection.ResolverExtensions.Resolve(ConstructorRef constructorRef) 
  at Microsoft.VisualStudio.Composition.RuntimeComposition.RuntimePart.get_ImportingConstructor() 
  at Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory.RuntimeExportProvider.RuntimePartLifecycleTracker.CreateValue() 
  at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.Create() 
  at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.MoveNext(PartLifecycleState nextState) 
  at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.MoveToState(PartLifecycleState requiredState) 
  at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.GetValueReadyToExpose() 
  at Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory.RuntimeExportProvider.<>c__DisplayClass15_0.<GetExportedValueHelper>b__0()   
  Source: Microsoft.VisualStudio.CommonIDE.ExtensibilityHosting.VsShellComponentModelHost 
  Time: 2016/09/12 07:16:43.932 

441 ERROR System.InvalidCastException: Unable to cast object of type 'System.Reflection.RuntimeMethodInfo' to type 'System.Reflection.ConstructorInfo'. 
  at Microsoft.VisualStudio.Composition.Reflection.ResolverExtensions.Resolve(ConstructorRef constructorRef) 
  at Microsoft.VisualStudio.Composition.RuntimeComposition.RuntimePart.get_ImportingConstructor() 
  at Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory.RuntimeExportProvider.RuntimePartLifecycleTracker.CreateValue() 
  at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.Create() 
  at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.MoveNext(PartLifecycleState nextState) 
  at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.MoveToState(PartLifecycleState requiredState) 
  at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.GetValueReadyToExpose() 
  at Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory.RuntimeExportProvider.<>c__DisplayClass15_0.<GetExportedValueHelper>b__0() --- End of stack trace from previous location where exception was thrown --- 
  at Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory.RuntimeExportProvider.<>c__DisplayClass15_0.<GetExportedValueHelper>b__0() 
  at Microsoft.VisualStudio.Composition.DelegateServices.<>c__DisplayClass2_0`1.<As>b__0() 
  at System.Lazy`1.CreateValue() 
  at System.Lazy`1.LazyInitValue() 
  at System.Lazy`1.get_Value() 
  at Microsoft.VisualStudio.Text.Utilities.GuardedOperations.InvokeEligibleFactories[TExtensionInstance,TExtensionFactory,TMetadataView](IEnumerable`1 lazyFactories, Func`2 getter, IContentType dataContentType, IContentTypeRegistryService contentTypeRegistryService, Object errorSource)   
  Source: Editor or Editor Extension 
  Time: 2016/09/12 07:16:44.075 

Source Microsoft.VisualStudio.CommonIDE.ExtensibilityHosting.VsShellComponentModelHostEditor or Editor Extension报告错误。

错误没有提到哪个扩展程序导致错误,我找不到任何提示在哪里查找问题。

使用调试器(devenv.exe" /RootSuffix Exp)运行时,调试器不会停止异常,并且仍会显示错误消息框。

任何想法如何进一步调试,以便找出导致问题的扩展名和扩展名中的问题可能在哪里?

更新

关闭Visual Studio,重新启动计算机,重新安装扩展程序等后,问题消失
我对此并不满意,因为我无法根本导致问题或获得任何好的提示,在哪里查看/如何调试。

4 个答案:

答案 0 :(得分:9)

Visual Studio 2015 Update 3(至少)提供了一个开始菜单项:

  

Visual Studio 2015&gt;重置Visual Studio 2015实验实例

它似乎比接受的答案更低级和更简单:它调用

"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VSSDK\
 VisualStudioIntegration\Tools\Bin\CreateExpInstance.exe"
 /Reset /VSInstance=14.0 /RootSuffix=Exp

似乎只是删除并重新创建相关文件。

答案 1 :(得分:4)

该错误意味着Visual Studio中的扩展信息缓存和您安装的扩展程序不同步。它不是(可能)任何扩展本身的错误,而是Visual Studio中的错误。确保你安装了所有更新的最新版本 - 我们在最近几个月修复了一些可能导致出错的错误。如果要强制重建缓存,可以运行:

devenv /updateconfiguration

强制在下次运行时重建缓存。

答案 2 :(得分:1)

要确保它是否与加载项或扩展程序工具相关,您可以在安全模式下运行VS:

devenv / SafeMode

如果它在安全模式下运行良好,我们会考虑它们。

根据您评论中的消息,我也没有对共享哪个扩展工具影响VS IDE的错误消息做好准备。

像这里的文件:

http://blog.masterdevs.com/debugging-a-visual-studio-crash/

您需要收集和查看详细的错误消息,例如&#34;未加载哪些dll文件或软件包或其他&#34;,如果您确保没有其他错误消息,也许您可​​以清除temp / AppData文件,重新打开你的VS,再次检查。

答案 3 :(得分:-1)

我通过删除<user>\AppData\Local\Microsoft\VisualStudio\

中的每个相关目录解决了这个问题

(“较低级别”重置调用无效,因为找不到目录blahblah\15.0Exp\。)

顺便说一句,我使用VS2017RCUpdate3。