如何 Debug 你做的 Visual Studio 擴充套件(vsix)

從 bot framework project template 到最近做的 xUnit.net 2.0、NUnit2、NUnit3 test framework,前前後後也上架了四個擴充套件(vsix),我都有把相關實作紀錄下來:如何發行 Visual Studio 專案範本(project Template)Test Framework 套件不好用嗎?! 自己做一個囉,但前面文章都只紀錄該如何可以成功實作,沒紀錄背後花最多時間的嘗試及摸索,今天就來分享該如何 debug Visual Studio 擴充套件(vsix)

以下會以 Test Framework 套件不好用嗎?! 自己做一個囉 製作的專案範本做為範例,程式碼在 NUnit3.TestGenerator

開啟具有 vsix 專案的 solution

首先第一步當然就是開啟有 VSIX 專案的方案(solution),管道有兩個:

  1. 自行建立 vsix project

    • 1-1. 方案上按 右鍵 –> Add –> New Project…

      4newproject

    • 1-2. Extensibility –> VSIX Project –> 填入方案名稱

      12addvsix

      • 看不到 Extensibility 時請重新執行 Visual Studio 2017 安裝程式,並加入 Visual Studio extension development 開發套件

        13noextension

        14noextension2

        15noextension3

  2. 使用已有 vsix project 的 solution

設定 vsix 專案

  1. vsix 專案 –> 按右鍵 –> Properties

    1setupproject

  2. Debug

    • Start external program

      設定啟動的 debug 程式 (我使用 vs2017:C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\devenv.exe)

      2vs2017

    • Start options

      設定啟動參數:/rootsuffix Exp

      3startoption

將 vsix 設為啟動專案

  • vsix 專案 –> 按右鍵 –> Set as StartUp Project

    4startup

直接按下 F5 進行 debug

會以 experimental instance 方式開啟另一個 Visual Studio 並已安裝啟動的 vsix,不會影響平常使用的 Visual Studio,但針對 experimental instance 安裝的套件會一直留在 experimental instance 中,不會自行移除,這點需要特別留意

experimental instance 的相關資訊可以參考 The Experimental Instance

  • experimental instance Visual Studio 在標題列除了一般的專案名稱外還會有 Experimental Instance (實驗執行個體)的字樣

    5ExperimentalInstance

實際效果

6debugging

參考資訊

  1. 如何發行 Visual Studio 專案範本(project Template)
  2. Test Framework 套件不好用嗎?! 自己做一個囉
  3. NUnit3.TestGenerator
  4. How to debug a Vsix project
  5. The Experimental Instance