The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

啟動 ASP.NET 偵錯模式的另一種比按下 F5 還快的方式

大部分人在測試 ASP.NET 程式時,大多按下 F5 (開始偵錯)(Start Debugging) 進入 ASP.NET 偵錯模式,不過我個人覺得這個程序非常的慢,所以大多不會直接按下 F5,而是先用 Ctrl + F5 直接看執行的結果,速度會快很多,因為大部分時候只是看執行結果,並沒有設定中斷點,無須進入偵錯模式。我之前曾經提過兩篇(這篇 & 這篇)在 Visual Studio 中關於 Attach to Process 的文章,所以當我需要除錯時才會利用 Attach to Process 將 WebDev.WebServer.EXE 程序附加上去,就可以進入偵錯模式了。

附加的步驟十分簡單,只需兩個步驟:

VS2008 -> Tools -> Attach to Process

Attach to Process -> WebDev.WebServer.EXE

不過,雖然只有兩個步驟,但我還是覺得每次都這麼做太麻煩,所以研究出透過 巨集(Macro) + 快速鍵繫結 的方式,可以快速啟動 ASP.NET 偵錯。

建立巨集函數

1. 先按下 Alt + F8 開啟 Macro Explorer

2. 新增一個新的巨集模組(Module)

 新增一個新的巨集模組(Module)

3. 編輯剛剛新增的巨集模組

編輯剛剛新增的巨集模組

4. 將以下巨集貼到 Public Module Module1 與 End Module 之間,並按下 Ctrl + S 存檔

Sub 附加偵錯程序()
    Try
        Dim m_DBG2 As EnvDTE80.Debugger2 = DTE.Debugger
        Dim m_Transport As EnvDTE80.Transport = m_DBG2.Transports.Item("Default")
        Dim m_DbgEngine(1) As EnvDTE80.Engine
        m_DbgEngine(0) = m_Transport.Engines.Item("Managed")
        Dim m_Process2 As EnvDTE80.Process2
        Try
            m_Process2 = m_DBG2.GetProcesses(m_Transport, "").Item("WebDev.WebServer.EXE")
        Catch ex As Exception
            MsgBox("您尚未啟動網站,建議先按下 Ctrl + F5 啟動網站")
            Return
        End Try
        m_Process2.Attach2(m_DbgEngine)
    Catch ex As System.Exception
        MsgBox(ex.Message)
    End Try
End Sub

5. 之後會在 Macro Explorer 看到剛剛定義的巨集

在 Macro Explorer 會看到剛剛定義的巨集

設定快速鍵繫結巨集執行

1. 開啟 Tools 選單 / Options,並找到 Environment / Keyboard 項目

2. 先在 Show commands containing 輸入「關鍵字」,例如輸入:附加

3. 找到你的巨集後,在底下的 Press shortcut keys 輸入「快速鍵」,並按下 Assign 即可(如下圖示)

開啟 Tools 選單 / Options,並找到 Environment / Keyboard 項目, 先在 Show commands containing 輸入「關鍵字」,例如輸入:附加, 找到你的巨集後,在底下的 Press shortcut keys 輸入「快速鍵」,並按下 Assign 即可

註:Visual Studio 中的快速鍵真是爆多的,要找到一個還沒用的還真難,我好不容易找到 Alt + ` 快速鍵

之後你就只要按下 Alt + ` 即可快速啟動 ASP.NET 偵錯程序了!

註:Visual Studio 內建關閉偵錯模式的快速鍵是 Shift + F5