代码之家  ›  专栏  ›  技术社区  ›  coppro

Visual Studio加载项挂钩解决方案加载

  •  1
  • coppro  · 技术社区  · 15 年前

    我正在尝试为Visual Studio编写一个加载项,每次加载解决方案时都需要运行该加载项。最终,我希望将其作为解决方案外接程序,以便它只针对需要它的解决方案运行,但我想知道是否有任何方法可以让我的外接程序钩住用户加载解决方案?

    谢谢。

    2 回复  |  直到 14 年前
        1
  •  2
  •   Jerry Coffin    15 年前

    这个 VCProjectEngineEvents SolutionLoaded 事件。

    编辑:我只能希望其他人能提出他们可以发布的示例——我拥有的唯一相关代码是我不能发布的。

        2
  •  2
  •   coppro    14 年前

    你可以使用 Saver add-in source code 例如(它是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);
    

    在solutionVentsink.cs中,是实际的解决方案事件处理程序:

    class SolutionEventsSink : Microsoft.VisualStudio.Shell.Interop.IVsSolutionEvents