2009-12-08 20 views
6

Sto lavorando a una soluzione con tre progetti, che vengono eseguiti quando si avvia il debug. Diventa fastidioso perché se voglio eseguire il debug di un aspetto di un particolare progetto che non è il mio progetto di avvio, devo allegare il processo ogni volta.In VS2008, c'è un modo per "Allegare al processo" automaticamente?

C'è un modo per fare in modo che il debugger si colleghi automaticamente a tutti i progetti?

Grazie per il vostro aiuto :)

Acclamazioni

Iain

risposta

18

Perché non è sufficiente impostare tutti i 3 progetti come i vostri progetti di avvio? In questo modo non avrai bisogno di allegare nulla?

Basta andare alle proprietà per la soluzione e selezionare "Più progetti di avvio".

+0

Ehi, guardi. Grazie Jaco, non mi ero reso conto che avresti potuto farlo. Bel lavoro :) –

+0

Non lo sapevo neanche! Fantastico, ora per capire dove ne ho bisogno; p – leppie

3

Non proprio elegante come la risposta di Jaco (non si è mai reso conto che si potevano avere più progetti di avvio), ma potrebbe essere piuttosto utile. Ho un 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 

ho quindi fissare il AttachToMyProcessX() macro per le scorciatoie da tastiera. Questo ha il vantaggio che è possibile allegare a un processo in modo retrospettivo: premendo Ctrl-F5 quindi il collegamento è spesso più rapido rispetto all'avvio con F5.

+0

Wow man, è hardcore! Ben fatto :) –

+0

Io scopo di compiacere ... –

+0

Questo è esattamente quello che stavo cercando. Devo eseguire regolarmente il collegamento al processo durante il debug di una DLL utilizzata da un'applicazione che non funziona bene con Visual Studio. –

Problemi correlati