2009-12-08 28 views
6

私は3つのプロジェクトを持つソリューションに取り組んでいます。これらのプロジェクトはすべてデバッグを開始するときに実行されます。私のスタートアッププロジェクトではない特定のプロジェクトの側面をデバッグしたい場合、毎回プロセスをアタッチする必要があるため、迷惑をかけることになります。VS2008では、自動的に「プロセスにアタッチ」する方法はありますか?

デバッガを自動的にすべてのプロジェクトにアタッチする方法はありますか?あなたの助けのための

感謝:)

乾杯

イアン

答えて

18

は、なぜあなたは単にあなたのスタートアッププロジェクトとして、すべての3つのプロジェクトを設定していませんか?このようにして、あなたは全くアタッチする必要はありませんか?

あなたのプロパティのソリューションに移動し、「複数のスタートアッププロジェクト」を選択します。

+0

ねえ、あなたはそれを見ますか? Jacoに感謝、私はあなたがそれを行うことができるとは気付かなかった。素敵な仕事:) –

+0

私はどちらか知っていませんでした!私はそれが必要な場所を把握するためにクール、今 – leppie

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で始めるよりも早くアタッチする方が早いことがよくあります。

+0

ワウの男は、それはハードコアです!よくやった:) –

+0

私はしてください... –

+0

これはまさに私が探していたものです。私は、Visual Studioでうまく動作しないアプリケーションで使用されるDLLをデバッグする際に、プロセスにアタッチする必要があります。 –

関連する問題