gpt4 book ai didi

.net - 如何制作 Visual Studio 宏以将调试器附加到 w3wp.exe 的所有实例?

转载 作者:行者123 更新时间:2023-12-04 14:07:53 29 4
gpt4 key购买 nike

我通常在开发 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 的实例?

最佳答案

Sub MacroAttachToAllProcesses()

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")

For Each theProcess As EnvDTE80.Process2 In dbg2.GetProcesses(trans, "COMPUTERNAME")
If theProcess.Name.Contains("w3wp.exe") Then
theProcess.Attach2(dbgeng)
End If

Next

Catch ex As System.Exception
MsgBox(ex.Message)
End Try

End Sub

关于.net - 如何制作 Visual Studio 宏以将调试器附加到 w3wp.exe 的所有实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/822955/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com