質問

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

メディアブラウザをデバッグしているとき、 2番目の処理は不格好で、Debugger.Attachと特殊レジストリ使用できるエントリ。

これらの方法はどちらも私の法案にぴったりとは合いません。 F5を押して、Visual Studioの現在のインスタンスを子プロセスに自動的にアタッチさせます。これはできますか?

この機能を実現できる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

また、これを実行します。

役に立ちましたか?

解決

マクロを使用します。通常実行される長いビルド/検証の代わりに、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

他のヒント

VS2012の場合、マクロは削除されましたが、標準のキーボードショートカットを使用すると、非常に迅速にマクロを実行できます。たとえば、iisexpress.exeに添付するには:

Ctrl + Alt + p -「プロセスにアタッチ」ダイアログが表示されます

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

Enter -添付

超高速のために、オフにすることもできますIISのデバッグ時のVisual Studio Attachセキュリティ警告

Lazy という名前の、私が作成したVisualStudioプラグインをチェックアウトします。

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

無料の Visual Studioの拡張機能を再接続します。起動する前にプロセス名に再接続するように依頼します。プロセス名の起動を待機していることを示すモーダルダイアログが表示されます。

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

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

Visual Studioでそのようなものをセットアップした場合、F5を押すとプロセスに自動的にアタッチできます:

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

注意:「コマンド」があります;実行可能ファイル名として埋められ、「添付」 「はい」でなければなりません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top