我正在开发一个有三个项目的解决方案,所有这些项目在我开始调试时都会运行。这很烦人,因为如果我想调试一个不是我的启动项目的特定项目的一个方面,我必须每次都附加这个过程。
有没有办法让调试器自动附加到所有项目?
感谢您的帮助:)
干杯
伊恩
答案 0 :(得分:18)
为什么不简单地将所有3个项目都设置为启动项目?这样你根本不需要附加?
只需转到属性解决方案,然后选择“多个启动项目”。
答案 1 :(得分: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开始更快。