【问题标题】:Visual Studio 2008 and 2008 SP1 Addin: using EnvDTE90 and EnvDTE90aVisual Studio 2008 和 2008 SP1 插件:使用 EnvDTE90 和 EnvDTE90a
【发布时间】:2026-01-15 19:30:01
【问题描述】:

有没有人知道在 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 似乎只有在积极调试时才有效。我想随时访问断点?

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

【问题讨论】:

    标签: c# visual-studio-2008 add-in breakpoints visual-studio-addins


    【解决方案1】:

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

    【讨论】:

    • 我的 VS 2005 代码不会在您在问题中看到的 VS 2008 中运行。
    【解决方案2】:

    我终于让一些代码工作了。 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
    }
    

    【讨论】:

      最近更新 更多