Frage

Wenn Plugins für Media-Center Schreiben Sie Ihre Plug-in ehexthost.exe gehostet wird diese exe von ehshell.exe gestartet wird, und Sie haben keine Möglichkeit, sie direkt von dem Start statt übergeben Sie einen speziellen param ehshell.exe, die das Plugin in einem separaten Prozess starten.

Wenn wir die Medien rel="noreferrer"> ich den Prozess finden, um eine für die Befestigung zweite Prozess Art klobig, weiß ich über Debugger.Attach und auch von einigen spezielle Registrierung Einträge kann ich.

Diese beiden Methoden nicht genau meine Rechnung passen. Was ich will, ist F5 zu drücken und automatisch meine aktuelle Instanz von Visual Studio, um das Kind Prozess anhängen. Kann dies geschehen?

Wenn es ein Plugin für VS ist, die mir diese Funktionalität zu erreichen erlaubt ich zufrieden sein würde.

Bearbeiten

Ich landete mit dem folgenden Makro gehen:

Public Sub CompileRunAndAttachToEhExtHost()

    DTE.Solution.SolutionBuild.Build(True)
    DTE.Solution.SolutionBuild.Debug()

    Dim trd As System.Threading.Thread = New System.Threading.Thread(AddressOf AttachToEhExtHost)
    trd.Start()

End Sub

Public Sub AttachToEhExtHost()
    Dim i As Integer = 0
    Do Until i = 50
        i = i + 1
        Try

            For Each proc As EnvDTE.Process In DTE.Debugger.LocalProcesses
                If (proc.Name.IndexOf("ehexthost.exe") <> -1) Then
                    proc.Attach()
                    Exit Sub
                End If
            Next
        Catch e As Exception
            ' dont care - stuff may be busy 
        End Try
        Threading.Thread.Sleep(100)
    Loop
End Sub

Auch skizzierte ich den Prozess, wie man erhalten diese auf meinem Blog geht .

War es hilfreich?

Lösung

Ich würde einen Makro verwenden. Ich habe meine F5 Funktion neu definiert die asp.net Prozess anstelle des langen Build befestigen / validieren es führt in der Regel. Das funktioniert ziemlich gut für mich und es ist wirklich einfach.

    For Each process In DTE.Debugger.LocalProcesses
        If (process.Name.IndexOf("aspnet_wp.exe") <> -1) Then
            process.Attach()
            Exit Sub
        End If
    Next

Andere Tipps

Für VS2012 wurde Makros fallen gelassen, aber man kann es immer noch recht schnell mit Standard-Tastenkombinationen. Zum Beispiel iisexpress.exe anbringt:

Strg + Alt + p - bringt das Befestigen Dialog zu Prozess

i - springt zum ersten Prozess mit i in der Liste beginnen (für mich ist das iisexpress.exe)

Enter - Attaches

Für Supergeschwindigkeit, können Sie auch ausschalten Visual Studio Bringen Sie Sicherheitswarnung, wenn IIS debuggen.

Überprüfen Sie die Visual Studio-Plugin, die ich schrieb, mit dem Namen Faule .

Ich war Debuggen eines C ++ Plugin in einem extern erzeugten Prozess, der durch Auslösen einer Ausnahme beim Start abgestürzt und dies funktionierte perfekt für mich:

Fügen Sie den kostenlosen Reattach Erweiterung für Visual Studio . Stellen Sie es auf den Namen des Prozesses wieder zu befestigen, bevor es gestartet wird. Es wird ein modaler Dialog Pop sagen, es wartet auf den Prozessnamen zu starten.

Sie nun den Prozess starten und die Visual Studio-Debugger sofort angehängt werden kann, fangen Ausnahmen und schlagen Unterbrechungspunkte.

(Dies war auch in einer Media-Plugin wurde die Ausnahme der Regel durch den Host-Prozess in einem Delphi Kontext gefangen und erneut ausgelöst, damit ich brechen musste, bevor das passiert ist).

Sie können automatisch auf ein Verfahren an, indem Sie F5 drücken, wenn Sie das Setup etwas wie die in Visual Studio:

http://vvcap.net/db/ujYL7zeN_n_RgeprqCSM.htp

Hinweis: Es gibt „Command“ als Namen der ausführbaren Datei ausgefüllt, und „Attach“ muss mit „Ja“

sein
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top