共用方式為


從 Visual Studio 中的 DLL 專案進行偵錯 (C#、C++、Visual Basic、F#)

偵錯 DLL 專案的其中一個方法,是在 DLL 專案屬性中指定呼叫的應用程式。 然後,您可以從 DLL 專案本身開始偵錯。 若要讓此方法正常運作,應用程式必須在與您設定的相同位置上呼叫相同的 DLL。 如果應用程式找到並載入不同版本的 DLL,該版本將不會包含中斷點。 如需偵錯 DLL 的其他方法,請參閱對 DLL 專案進行偵錯

如果您的受控應用程式呼叫原生 DLL,或原生應用程式呼叫受控 DLL,您可以對 DLL 和呼叫端應用程式進行偵錯。 如需詳細資訊,請參閱如何:在混合模式中偵錯

原生和受控 DLL 專案有不同的設定來指定呼叫應用程式。

在原生 DLL 專案中指定呼叫的應用程式

  1. 在 [方案總管] 中選取 C++ DLL 專案。 選取 [屬性] 圖示、按下 Alt+Enter,或以滑鼠右鍵按一下並選擇 [屬性]

  2. <[專案屬性頁]> 對話方塊中,請確定視窗頂端的 [組態] 欄位已設定為 [偵錯]

  3. 選取 [組態屬性偵錯]>[偵錯]

  4. 在 [要啟動的偵錯工具] 清單中,請選擇 [本機 Windows 偵錯工具] 或 [遠端 Windows 偵錯工具]

  5. 在 [命令] 或 [遠端命令] 方塊中,新增呼叫應用程式的完整路徑和檔案名稱,例如 .exe 檔案。

    Debug Properties window

  6. 在 [命令引數] 方塊中,新增必要的程式引數。

  7. 選取確定

在 C# DLL 專案中指定呼叫的應用程式 (.NET Core、.NET 5+)

  1. 在 [方案總管] 中選取 C# 或 Visual Basic DLL 專案。 選取 [屬性] 圖示、按下 Alt+Enter,或以滑鼠右鍵按一下並選擇 [屬性]

  2. 在 [偵錯] 索引標籤中,選取 [開啟偵錯啟動設定檔 UI]

  3. 在 [啟動設定檔] 對話方塊中,選取 [建立新的設定檔] 圖示,然後選擇 [可執行檔]

    Screenshot of the UI to create a new debug profile.

  4. 在新設定檔的 [可執行檔] 底下,瀏覽至可執行檔的位置 (.exe 檔案),然後加以選取。

  5. 在 [啟動設定檔] 對話方塊中,請注意預設設定檔的名稱,然後加以選取並刪除。

  6. 將新設定檔重新命名為與預設設定檔相同的名稱。

    或者,您可以手動編輯 launchSettings.json 以取得相同的結果。 您希望 launchSettings.json 中的第一個設定檔符合類別庫的名稱,並將其列為檔案首位。

在受控 DLL 專案中指定呼叫的應用程式

  1. 在 [方案總管] 中選取 C# 或 Visual Basic DLL 專案。 選取 [屬性] 圖示、按下 Alt+Enter,或以滑鼠右鍵按一下並選擇 [屬性]

  2. 請確定視窗頂端的 [組態] 欄位已設定為 [偵錯]

  3. 在 [起始動作] 底下:

    • 若為 .NET Framework DLL,選取 [啟動外部程式],然後加入呼叫應用程式之完整路徑和名稱。

    • 或者,選取 [使用 URL 啟動瀏覽器],然後填入本機 ASP.NET 應用程式的 URL。

    • 針對 Visual Basic 中的 .NET Core DLL,[偵錯] 屬性頁面不同。 從 [啟動] 下拉式清單中選取 [可執行檔],然後在 [可執行檔] 欄位中新增呼叫應用程式的完整路徑和名稱。
    • 針對 .NET Core DLL,[偵錯] 屬性頁面不同。 從 [啟動] 下拉式清單中選取 [可執行檔],然後在 [可執行檔] 欄位中新增呼叫應用程式的完整路徑和名稱。
  4. 在 [命令列引數] 或 [應用程式引數] 欄位中,新增任何必要的命令列引數。

    C# Debug Properties window

  5. 使用 [檔案]>[儲存選取的專案]Ctrl+S 來儲存變更。

從 DLL 專案進行偵錯

  1. 在 DLL 專案中設定中斷點。

  2. 以滑鼠右鍵按一下 DLL 專案,然後選擇 [設定為啟始專案]

  3. 確定 [方案組態] 欄位已設定為 [偵錯]。 按下 F5,按一下綠色開始箭號,或選取偵錯>開始偵錯

其他提示:

  • 如果偵錯未叫用中斷點,請確定 DLL 輸出 (預設為 <project>\Debug 資料夾) 是呼叫應用程式所呼叫的位置。

  • 如果您想要從原生 DLL 中斷受控呼叫應用程式中的程式碼,請啟用 混合模式偵錯,反之亦然。

  • 在某些情況下,您可能需要告訴偵錯工具可在何處找到原始程式碼。 如需詳細資訊,請參閱使用 [未載入符號]/[未載入來源] 頁面