【问题标题】:Visual Studio Add-In: How do I know when a solution has finished loadingVisual Studio 加载项:我如何知道解决方案何时完成加载
【发布时间】:2009-09-30 08:41:34
【问题描述】:

我正在编写一个 VS2008 插件(使用 DTE),需要在当前解决方案完成加载后得到通知。

我尝试过使用以下代码:

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

不幸的是,自 VS2005 以来,似乎在解决方案开始加载时引发了事件 - 而不是在完成时引发。

简短的互联网搜索产生了following thread,它解释了问题并提出了解决方案(检查每个项目项以查看它是否完成加载)。

这是可用的最佳解决方案,还是有更好的方法来了解解决方案何时完成加载?

【问题讨论】:

    标签: c# visual-studio-2008 add-in envdte


    【解决方案1】:

    我找到了解决此问题的解决方法 - 我创建了一个在主线程上运行的 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);
       }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多