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 に答える