【发布时间】:2010-12-24 08:37:00
【问题描述】:
我正在开发一个包含三个项目的解决方案,所有这些项目都在我开始调试时运行。这很烦人,因为如果我想调试不是我的启动项目的特定项目的某个方面,我必须每次都附加该过程。
有没有办法让调试器自动附加到所有项目?
感谢您的帮助:)
干杯
伊恩
【问题讨论】:
标签: c# visual-studio visual-studio-2008 debugging
我正在开发一个包含三个项目的解决方案,所有这些项目都在我开始调试时运行。这很烦人,因为如果我想调试不是我的启动项目的特定项目的某个方面,我必须每次都附加该过程。
有没有办法让调试器自动附加到所有项目?
感谢您的帮助:)
干杯
伊恩
【问题讨论】:
标签: c# visual-studio visual-studio-2008 debugging
您为什么不简单地将所有 3 个项目都设置为您的启动项目?这样就不需要附加了?
只需转到您解决方案的属性并选择“多个启动项目”。
【讨论】:
不像 Jaco 的回答那么优雅(从未意识到您可以有多个启动项目),但可能非常有用。我有一个 VS 宏:
Function AttachToProcess(ByVal procname As String, ByVal quiet As Boolean) As Boolean
Dim attached As Boolean = False
Dim proc2 As EnvDTE80.Process2
' Attaching natively, from http://blogs.msdn.com/jimgries/archive/2005/11/30/498264.aspx '
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("Native")
For Each proc2 In DTE.Debugger.LocalProcesses
If (proc2.Name.Contains(procname)) Then
proc2.Attach2(dbgeng)
attached = True
Exit For
End If
Next
If (attached = False And quiet = False) Then
MsgBox(procname + " is not running")
End If
Return attached
End Function
Sub AttachToMyProcess1()
AttachToProcess("MyProcess1.exe", True)
End Sub
Sub AttachToMyProcess2()
AttachToProcess("MyProcess2.exe", True)
End Sub
然后我将AttachToMyProcessX() 宏附加到键盘快捷键。这样做的好处是您可以追溯附加到一个进程:按 Ctrl-F5 然后附加通常比从 F5 开始要快。
【讨论】: