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

问题描述 投票:6回答:2

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

visual-studio visual-studio-2010 visual-studio-addins vsix
2个回答
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对象ref:http://msdn.microsoft.com/en-us/library/envdte.solution.aspx

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


0
投票

看看DTE.Events.BuildEventsOnBuildBeginOnBuildDone的活动。

© www.soinside.com 2019 - 2024. All rights reserved.