在 Visual Studio 的早期版本中,扩展(更具体地说,是插件)只有一个入口点,即OnConnect
方法。从那里可以执行所有 Visual Studio 操作,例如添加菜单项和设置全局异常处理程序,以优雅地处理未处理的异常。
在 Visual Studio 2010 的 VsPackage 中,事情的工作方式有所不同 - 应用程序的许多部分(例如IWpfTextView
)由 MEF 组成并在没有显式控制包的情况下加载,这使得处理来自那些异常的任何异常都非常困难。
如果不将所有此类组件显式包装在try..catch
它们自己的组件中,我如何才能有效地为我的 VsPackage 中的(非关键)异常实现全局处理程序?同样,目标是拥有类似 ReSharper 的异常对话框,它可以在其中处理全局异常而不会导致 Visual Studio 崩溃。