这个周末我花了一些时间在一个 VSIX(Visual Studio 扩展)项目上,昨天大约有一段时间,实验实例在开始调试时开始抛出一个
StackOverflowException
。异常似乎是从JoinableTaskFactory
的Microsoft.VisualStudio.Threading
类中抛出的,特别是从这个方法:
private void ExecuteJob<T>(Func<Task> asyncMethod, JoinableTask job)
不幸的是,这似乎不是由项目本身引起的问题,因为我已经尝试调试一个新的空白 VSIX 项目,但我继续遇到同样的异常。我真的不确定是什么原因造成的。在我能够调试和开始遇到此问题之间的这段时间里,我没有对 IDE 本身进行任何更改(包括安装其他扩展或更新)。我也尝试过重置实验实例并重新安装 Visual Studio,但都没有解决问题。
在这一点上我很困惑......有什么想法吗?
所以,我不确定为什么扩展能够在实验实例中持续存在,但事实证明它仍然安装了,而且毕竟是扩展。我在命令表中输入了错误的扩展菜单的父级并将其设置为扩展菜单组,这导致菜单递归地嵌套在自身中。这导致 visual studio 搜索服务在实验实例中以
StackOverflowException
崩溃。我卸载了旧版本的扩展,现在一切正常。