36 votes

Association automatique à un processus enfant dans Visual Studio lors du débogage

Lors de l'écriture de plugins pour le media center de votre plugin est hébergé dans ehexthost.exe cet exe est lancé à partir de ehshell.exe et vous n'avez aucun moyen de le lancer directement, au lieu de passer une spéciale de param ehshell.exe qui va lancer le plugin dans un autre processus.

Lorsque nous sommes débogage explorateur de médias , je trouve le processus de fixation d'un second genre de maladroit, je sais à propos de Débogueur.Joindre et aussi d'un certain registre spécial des entrées que je peux utiliser.

Ces deux méthodes ne sont pas exactement adapté à mon projet de loi. Ce que je veux, c'est d'appuyer sur F5 et mon actuel instance de visual studio attacher à l'enfant le processus automatiquement. Cela peut-il être fait?

Si il y a un plugin pour VS qui me permet de bénéficier de cette fonctionnalité, je serais heureux avec elle.

MODIFIER

J'ai fini par aller avec la macro suivante:

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

Aussi, j'ai décrit le processus sur la façon d' obtenir ce que ça va sur mon blog.

38voto

Jab Points 8901

Je voudrais utiliser une macro. J'ai redéfini ma fonction F5 pour l'attacher au processus asp.net au lieu de la construction / validation longue qu'il effectue habituellement. Cela fonctionne assez bien pour moi et c'est vraiment facile.

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

14voto

Mike Chamberlain Points 5325

Pour VS2012, les macros ont été supprimées, mais vous le faites quand même assez rapidement avec les raccourcis clavier standard. Par exemple, pour attacher à iisexpress.exe:

Ctrl + Alt + p - ouvre la boîte de dialogue Attacher au processus

i - saute au premier processus commençant par i dans la liste (pour moi c'est iisexpress.exe)

Entrez - attache

11voto

pablito Points 2905

Découvrez le plugin VisualStudio que j'ai écrit, nommé Lazy .

0voto

galets Points 4119

Vous pouvez attacher automatiquement à un processus en appuyant sur F5, si vous configurez quelque chose comme ça dans Visual Studio:

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

remarque: "Command" est rempli en tant que nom d’exécutable et "Attach" doit être "yes"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X