我通常在开发 Web 应用程序,而且我的大量工作时间都花在了“Ctrl + Alt + P”上,按进程名称排序,然后选择 w3wp.exe 来附加我的调试器。
更糟糕的是,我正在开发一个跨越多个应用程序池的应用程序,所以我通常有 2 或 3 个 w3wp.exe 实例,并且无法知道要附加到哪个实例,所以我通常最终附加到所有其中,这是矫枉过正但有效。
总而言之,这很烦人...
我的同事想出了一种方法让 VS 宏自动附加到 w3wp.exe(他基本上记录了这个):
Sub AttachMacro()
Try
Dim dbg2 As EnvDTE80.Debugger2 = DTE.Debugger
Dim trans As EnvDTE80.Transport = dbg2.Transports.Item("Default")
Dim dbgeng(3) As EnvDTE80.Engine
dbgeng(0) = trans.Engines.Item("T-SQL")
dbgeng(1) = trans.Engines.Item("T-SQL")
dbgeng(2) = trans.Engines.Item("Managed")
Dim proc2 As EnvDTE80.Process2 = dbg2.GetProcesses(trans, "ENIAC").Item("w3wp.exe")
proc2.Attach2(dbgeng)
Catch ex As System.Exception
MsgBox(ex.Message)
End Try
End Sub
我不太确定是否所有这些都是必要的,或者其他什么,我从来没有为 VS 制作过宏,我真的不知道从哪里开始。
有没有办法修改这个宏,而不是将自己附加到w3wp.exe的实例,而是将自己附加到w3wp.exe 的所有实例?