7

Visual Studio パッケージ (VSIX) からソリューションまたはプロジェクトのビルドを検出するにはどうすればよいですか?

4

2 に答える 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...
  }
}

参照:VSIX:DTEオブジェクトの取得参照: http: //msdn.microsoft.com/en-us/library/envdte.solution.aspx

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

于 2011-11-10T22:55:00.553 に答える