1

有谁知道在 Visual Studio 2008(EnvDTE90)和 Visual Studio 2008 SP1(EnvDTE90a)中执行此操作的等效项?

    //this is code for Visual Studio 2005, works great
    EnvDTE80.DTE2 dte2 = (EnvDTE80.DTE2)System.Runtime.InteropServices.Marshal.
    GetActiveObject("VisualStudio.DTE.8.0");

    foreach (EnvDTE80.Breakpoint2 bp in dte2.Debugger.Breakpoints)
    {
         //do some things
    }

我已经进行了正常的谷歌搜索并找到了各种东西,但没有一个有效。

EnvDTE90.Debugger3似乎只有在主动调试时才有效。我想随时访问断点?

注意:请不要发送指向应该可以工作的现有代码示例的链接。我已经尝试了所有我能找到的。

4

2 回答 2

3

VS2005 代码 (EnvDTE80) 也应该与 VS2008 一起正常工作。EnvDTE90 只是添加了一些新功能,但基础仍然需要 EnvDTE80 和 EnvDTE。

于 2009-05-13T03:00:08.267 回答
0

我终于得到了一些代码工作。KristoferA 的回答部分正确,因为可以使用相同的 API,但代码无法逐字运行。这就是我让它工作的方式:

EnvDTE80.DTE2 dte2 = (EnvDTE80.DTE2)System.Runtime.InteropServices.Marshal.
GetActiveObject("VisualStudio.DTE.9.0");

foreach (EnvDTE80.Breakpoint2 bp in dte2.Debugger.Breakpoints)
{
     //do some things
}
于 2009-05-14T01:24:06.623 回答