用于构建的Visual Studio 2008宏不会阻止线程

时间:2009-10-06 15:22:36

标签: visual-studio vba visual-studio-2008 external-tools

我正在尝试为构建我的应用程序编写一个宏,启动一个外部工具,并将调试器发送到该外部工具。

除了建筑外,一切正常。它构建,但它不会阻塞线程,因此外部工具在完成​​之前就会被踢掉。有没有办法可以运行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

2 个答案:

答案 0 :(得分:0)

我相信这个帖子得到了解答:

Run Visual Studio 2008 Macro on Pre Build Event

答案 1 :(得分:0)

如果您将调试器附加到第一个进程,ClassViewContextMenus.ClassViewProject.Build,以及第二个进程可能会阻塞主机进程,直到第一个进程完成。或者以其他方式获取第一个进程的进程句柄并等待它退出。鉴于你正在做的聪明的调试器,我假设你会比我更了解如何做到这一点。