8

ASP.Net 開発サーバーの実行中のインスタンスに自動的にアタッチできる Visual Studio 2010 アドインを知っている人はいますか? また、現在実行中の ASP.Net 開発サーバーが複数ある場合は、実行中の ASP.Net 開発サーバーのみのリストから選択できるクイック ダイアログを表示します?

なぜ私はこれが欲しいのですか?<--この部分はスキップして構いません。

私が通常 Web アプリケーションを開発 / デバッグする方法は、ブラウザを起動して、目的のページに到達するまでアプリケーションをナビゲートすることです (多くのページが深くなる可能性があります)。理由 (アタッチされていない場合よりも遅い、余分なブレークポイントがヒットする可能性がある、「スロー」がオンになっているときにブレークする可能性があり、処理されたエラーがスローされたときにアプリで以前にブレークしたくないなど...)

目的のページに移動し、Visual Studio のメニューを使用して [デバッグ] > [プロセスにアタッチ] を選択し、[プロセスにアタッチ] ダイアログ内から下 (ページ、ページ、プロセスのページ) までスクロールする必要があります。必要な WebDev.WebServer40.EXE プロセスを見つけて選択します。

これを行うと、キーボードから手を離してマウスを使用するようになります (これは通常、避けようとします)。

ASP.Net Web アプリケーションをデバッグしている場合、常に WebDev.WebServer40.exe のインスタンスにアタッチする必要があるため、これを行うのは不必要に繰り返されるように思えます。

4

3 に答える 3

7

私はまったく同じことを行うことを好み、マクロを使用してすべてをキーストロークにバインドすることは可能です

[ツール] > [マクロ] > [マクロ IDE] に移動

新しいモジュールを追加し、このコードを使用します (ファンキーなコメントは構文の強調表示用です)

Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports EnvDTE90a
Imports EnvDTE100
Imports System.Diagnostics
Imports System.Collections.Generic

Public Module AttachingModule
    Sub AttachToAspNET()
        Try
            Dim process As EnvDTE.Process

            Dim listProcess As New List(Of String)
            '' // uncomment the processes that you'd like to attach to.  I only attach to cassini
            '' // listProcess.Add("aspnet_wp.exe")
            '' // listProcess.Add("w3wp.exe")
            listProcess.Add("webdev.webserver")

            For Each process In DTE.Debugger.LocalProcesses
                For Each procname As String In listProcess
                    If process.Name.ToLower.IndexOf(procname) <> -1 Then
                        process.Attach()
                    End If
                Next
            Next

        Catch ex As System.Exception
            MsgBox(ex.Message)
        End Try
    End Sub

End Module

[ファイル] > [閉じて戻る] をクリックします。

[ツール] > [オプション] をクリックします。

[環境] > [キーボード] をクリックします。

マクロを MyMacros に入れたので、「Show Commands Containing」テキストボックスで「Macros.MyMacros.AttachingModule.AttachToAspNET」を探します。

Ctrl+ Alt+を使用することを好みDますが、「ショートカットキーを押す」テキストボックスに必要なものを入力し、[割り当て] をクリックしてから [OK] をクリックします。

Ctrl+ Alt+を押すだけで、すべてのcassiniDインスタンスにアタッチできます。

インターネットでこれのさまざまなバージョンを見てきましたが、これは私が見つけた最新のものです。WebDev.WebServer.execassini の .net 4.0 インスタンスをデバッグできるように、余分な Web プロセスを削除し、.exe を から削除するために、これを少し変更する必要がありました。

于 2012-01-27T17:45:44.763 に答える
4

私はそのようなアドインを知りませんが、ショートカット キーを使用し、'W' を押して WebDev プロセスにスクロールすることで、より簡単にプロセスにアタッチすることができます

Ctrl+ Alt+ P - プロセスにアタッチ
(プロセス ウィンドウにフォーカスがある)を
押すWと、W で始まるプロセスにジャンプする を
押しEnterてアタッチする

アドインではありませんが、マウスに触れずに実行できます。

于 2011-09-30T14:59:12.497 に答える
1

この回答を確認してください: 2012 年のプロセスへのアタッチ

これは、nunit エージェント、IIS、および IIS Express に接続するためのショートカットを提供する単純なプラグインです。Ctrl-Alt-P と比較すると純粋に便利ですが、便利です。

プラグインへの直接リンクはこちら

于 2012-12-18T08:41:09.780 に答える