문제

현재 솔루션이로드를 완료 한 후에 알림을 받아야하는 VS2008 추가 기능 (DTE 사용)을 작성하고 있습니다.

다음 코드를 사용해 보았습니다.

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

불행히도 VS2005 이후 솔루션이로드되기 시작하면 이벤트가 발생하는 것으로 보입니다.

짧은 인터넷 검색이 생성되었습니다 다음 스레드 이는 문제를 설명하고 솔루션을 제안합니다 (각 프로젝트 항목을 확인하여로드가 완료되었는지 확인하십시오).

이것이 최상의 솔루션입니까, 아니면 솔루션이 로딩을 완료했는지 알 수있는 더 좋은 방법이 있습니까?

도움이 되었습니까?

해결책

이 문제를 해결하는 해결 방법을 찾았습니다. 기본 스레드에서 실행되는 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