1

アプリケーションをビルドし、外部ツールを起動し、デバッガーをその外部ツールに接続するためのマクロを作成しようとしています。

建物を除いてすべてが機能しています。ビルドしますが、スレッドをブロックしていないため、外部ツールが終了する前にキックオフされます。ExecuteCommandを実行して、スレッドが終了するのを待つ方法はありますか?

コードは以下のとおりです。

    DTE.ExecuteCommand("ClassViewContextMenus.ClassViewProject.Build")
    DTE.ExecuteCommand("Tools.ExternalCommand11")

    Try
        Dim dbg2 As EnvDTE80.Debugger2 = DTE.Debugger
        Dim trans As EnvDTE80.Transport = dbg2.Transports.Item("Default")
        Dim dbgeng(1) As EnvDTE80.Engine
        dbgeng(0) = trans.Engines.Item("Managed")
        Dim proc2 As EnvDTE80.Process2 = dbg2.GetProcesses(trans, "MINIPC").Item("_nStep.exe")
        proc2.Attach2(dbgeng)
    Catch ex As System.Exception
        MsgBox(ex.Message)
    End Try
4

2 に答える 2

0

これは私が信じるこのスレッドで答えられました:

ビルド前のイベントでVisualStudio2008マクロを実行する

于 2009-11-02T19:30:34.047 に答える
0

デバッガーを最初のプロセスであるClassViewContextMenus.ClassViewProject.Buildと2番目のプロセスにアタッチすると、おそらくホストプロセスは最初のプロセスが完了するまでブロックされます。または、他の方法で最初のプロセスのプロセスハンドルを取得し、終了するのを待ちます。あなたがやっている賢いデバッガーのことを考えると、私よりもこれをうまくやる方法を知っていると思います。

于 2009-12-30T11:36:32.720 に答える