从visual studio软件包(VSIX)如何检测解决方案或项目构建?

时间:2011-04-27 13:06:10

标签: visual-studio visual-studio-2010 visual-studio-addins vsix

从visual studio软件包(VSIX)如何检测解决方案或项目构建?

2 个答案:

答案 0 :(得分:4)

如果程序集中有Package类,则可以执行以下操作:

DTE2 = Package.GetGlobalService(typeof(SDTE)) as DTE2;

然后查看IsOpen属性,查看解决方案是否已打开...查看Projects属性以查找项目。

但是,如果您的意思是在打开解决方案时如何获得事件...那么解决方案,例如:

public sealed class MyPackage : Package
{
  private DTE m_dte;

  protected override void Initialize()
  {
    IServiceContainer serviceContainer = this as IServiceContainer;
    m_dte = serviceContainer.GetService(typeof(SDTE)) as DTE;
    var m_solutionEvents = m_dte.Events.SolutionEvents;
    m_solutionEvents.Opened += SolutionOpened;
    ...

  }

  void SolutionOpened()
  {
     .... away you go...
  }
}

ref:VSIX:获取DTE对象参考:http://msdn.microsoft.com/en-us/library/envdte.solution.aspx

参考:http://msdn.microsoft.com/en-us/library/envdte._solution.projects.aspx

答案 1 :(得分:0)

看看DTE.Events.BuildEvents,有OnBuildBeginOnBuildDone的事件。