36

メディア センターのプラグインを作成する場合、プラグインはehexthost.exeこの exeでホストされehshell.exeており、直接起動する方法はありません。代わりehshell.exeに、別のプロセスでプラグインを起動する特別なパラメーターを渡します。

メディア ブラウザをデバッグしているときに、2 番目のプロセスにアタッチするプロセスがややこしいことに気づきました。Debugger.Attach と、使用できるいくつかの特別なレジストリエントリについて知っています。

これらの方法は両方とも、私の法案に正確には適合しません。私が望むのは、F5 キーを押して、ビジュアル スタジオの現在のインスタンスを自動的に子プロセスにアタッチすることです。これはできますか?

この機能を実現できる VS 用のプラグインがあれば、それで満足です。

編集

私は次のマクロで行きました:

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

また、ブログで これを実現する方法についてのプロセスを概説しました。

4

5 に答える 5

38

マクロを使用します。通常実行される長いビルド/検証ではなく、asp.net プロセスにアタッチするように F5 関数を再定義しました。これは私にとってはかなりうまく機能し、本当に簡単です。

    For Each process In DTE.Debugger.LocalProcesses
        If (process.Name.IndexOf("aspnet_wp.exe") <> -1) Then
            process.Attach()
            Exit Sub
        End If
    Next
于 2009-01-27T15:19:19.220 に答える
14

VS2012 では、マクロは削除されましたが、標準のキーボード ショートカットを使用して非常に迅速に行うことができます。たとえば、iisexpress.exe にアタッチするには、次のようにします。

Ctrl+ Alt+ p- [プロセスにアタッチ] ダイアログを表示します

i- リスト内の i で始まる最初のプロセスにジャンプします (私にとってこれは iisexpress.exe です)

Enter- 添付します

超高速化のために、IIS のデバッグ時に Visual Studio のアタッチ セキュリティ警告を無効にすることもできます。

于 2013-11-26T02:49:27.003 に答える
11

私が書いたLazyという名前のVisualStudioプラグインをチェックしてください。

于 2009-01-27T11:26:09.113 に答える
2

起動時に例外をスローしてクラッシュした外部で生成されたプロセスで C++ プラグインをデバッグしていましたが、これは完全に機能しました。

無料の Visual Studio 用 Reattach Extension を追加します。起動する前に、プロセス名に再接続するように依頼してください。プロセス名が起動するのを待っていることを示すモーダル ダイアログが表示されます。

プロセスを起動すると、Visual Studio デバッガーがすぐにアタッチされ、例外がキャッチされ、ブレークポイントがヒットします。

(これはメディア プラグインにもありました。例外は通常、Delphi コンテキストでホスト プロセスによってキャッチされ、再スローされるため、それが発生する前に中断する必要がありました)。

于 2014-10-15T17:34:31.727 に答える
0

Visual Studio で次のような設定を行うと、F5 キーを押すことで自動的にプロセスにアタッチできます。

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

注意: 実行可能ファイル名として "Command" が入力されており、"Attach" は "yes" でなければなりません

于 2009-01-08T00:51:47.153 に答える