Visual Studio扩展:等待所有项目使用IVsSolutionEvents OnAfterOpenSolution完成加载

She*_*tin 8 visual-studio-2010 visual-studio-2008 visual-studio envdte visual-studio-extensions

我正在寻找一个使用的事件/接口,一旦打开解决方案后所有项目都加载到解决方案中,它就会通知我.

OnAfterOpenSolutionIVsSolutionEvents2界面中实现了.在解决方案打开后立即调用此...所以我对UI线程运行的任何代码,甚至是非常的,都会在项目加载之前锁定IDE.

是否有类似的技术来实现`OnAfterOpenSolution',一旦解决方案的所有项目都打开,就会调用它?

Col*_*lar 5

在解决方案的所有项目都已完成加载后,将触发IVsSolutionLoadEvents接口中的OnAfterBackgroundSolutionLoadComplete事件.此实现仍需要实现或扩展其中一个IVsSolutionEvents接口的实现,以便使用IVsSolution.AdviseSolutionEvents(..)方法附加事件.

在此区域进一步调查后,只有在项目设置为在后台加载时才会出现OnAfterBackgroundSolutionLoadComplete.如果已禁用后台加载,则不会发生此事件.如果您打算依赖OnAfterBackgroundSolutionLoadComplete事件,或者根据用户设置加载优先级的方式进行切换,您可能还必须实现IVsSolutionLoadManager并确保至少有一个项目具有后台加载优先级.