2009-12-08 14 views
6

Estoy trabajando en una solución que tiene tres proyectos, todos los cuales se ejecutan cuando comienzo la depuración. Se vuelve molesto porque si quiero depurar un aspecto de un proyecto en particular que no es mi proyecto de inicio, tengo que adjuntar el proceso cada vez.En VS2008, ¿hay alguna forma de "adjuntar al proceso" automáticamente?

¿Hay alguna forma de que el depurador se conecte automáticamente a todos los proyectos?

Gracias por su ayuda :)

Saludos

Iain

Respuesta

18

¿Por qué no basta con establecer los 3 proyectos como sus proyectos de puesta en marcha? De esta forma, no será necesario que se adjunte en absoluto?

Simplemente vaya a las propiedades para su solución y seleccione 'Múltiples proyectos de inicio'.

+0

Oye, mira eso. Gracias Jaco, no me di cuenta de que podrías hacer eso. Buen trabajo :) –

+0

¡Yo tampoco lo sabía! Genial, ahora para descubrir dónde lo necesito; p – leppie

3

No es tan elegante como la respuesta de Jaco (nunca se dio cuenta de que podría tener varios proyectos de inicio), pero puede ser bastante útil. Tengo una macro 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 

continuación adjunto el AttachToMyProcessX() macros para atajos de teclado. Esto tiene la ventaja de que puede conectarse a un proceso de forma retroactiva: presionar Ctrl-F5 y luego adjuntar es a menudo más rápido que comenzar con F5.

+0

Guau, ¡eso es hardcore! Bien hecho :) –

+0

Mi objetivo es por favor ... –

+0

Esto es exactamente lo que estaba buscando. De forma rutinaria, tengo que adjuntarme al proceso mientras se depura una DLL que utiliza una aplicación que no funciona bien con Visual Studio. –

Cuestiones relacionadas