Visual Studioのアドイン:どのように私は、ソリューションのロードが完了したときに知っています

StackOverflow https://stackoverflow.com/questions/1496809

質問

私が書いているVS2008アドイン(DTEを使用して)現在のソリューションは、読み込みが完了した後に通知する必要があること。

私は、次のコードを使用してみました。

events = (Events2) applicationObject.Events
events.SolutionEvents.Opened += DoSomeWorkEvent;

残念ながらVS2005以降のイベントは、溶液をロードするために開始したときにスローされるようだ - 。それが完了したときではなく、

短いインターネット検索は、<のhref = "http://social.msdn.microsoft.com/Forums/en-US/vsx/thread/3fca4a7d-d656-459c-af67-d3a3f71d5a70" のrel = "nofollowをを生産しました問題を説明し、(それが読み込みが完了かどうかを確認するために、各プロジェクトの項目を確認してください)ソリューションを提案するスレッドの次noreferrer ">。

これは利用可能な最善のソリューションであるか、ソリューションの読み込みが完了したときを知るには良い方法はありますか?

役に立ちましたか?

解決

私はこの問題を解決し、回避策を見つけた - 私は、ソリューションの読み込みが完了している場合は、メインスレッドと小切手上で動作するWindows.Forms.Timerを作成しました。

private void TimerTick(object sender, EventArgs e)
{
   try
   {
       var solution = applicationObject.Solution;
       if (solution.IsOpen && string.IsNullOrEmpty(solution.FileName) == false)
       {
           timer.Stop();
           // insert logic here
       }
   }
   catch (Exception exception)
   {
       Console.WriteLine(exception);
   }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top