我正在尝试为 Visual Studio 编写一个加载项,每次加载解决方案时都需要运行该加载项。最终,我希望将其作为解决方案加载项,以便它仅针对需要它的解决方案运行,但我想知道是否有任何方法可以让我的加载项挂钩用户加载解决方案?
谢谢。
我正在尝试为 Visual Studio 编写一个加载项,每次加载解决方案时都需要运行该加载项。最终,我希望将其作为解决方案加载项,以便它仅针对需要它的解决方案运行,但我想知道是否有任何方法可以让我的加载项挂钩用户加载解决方案?
谢谢。
事件VCProjectEngineEvents
SolutionLoaded
。
编辑:我只能希望其他人能想出一个他们可以发布的示例——我拥有的唯一相关代码是我无法发布的。
您可以使用Saver 插件源代码作为示例(它是 Tabs Studio 插件的插件):
在 Saver.cs 中,您订阅事件:
solutionEventsSink = new SolutionEventsSink(orderController);
System.IServiceProvider serviceProvider = new Microsoft.VisualStudio.Shell.ServiceProvider(dte as Microsoft.VisualStudio.OLE.Interop.IServiceProvider);
vsSolution = ServiceProvider.GetService(typeof(Microsoft.VisualStudio.Shell.Interop.SVsSolution)) as Microsoft.VisualStudio.Shell.Interop.IVsSolution;
vsSolution.AdviseSolutionEvents(solutionEventsSink, out sinkCookie);
在 SolutionEventsSink.cs 中是实际的解决方案事件处理程序:
class SolutionEventsSink : Microsoft.VisualStudio.Shell.Interop.IVsSolutionEvents