共用方式為


從 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 檔案。

    Visual Studio 中 [偵錯屬性] 視窗的螢幕快照,其中顯示命令的值。

  6. 將任何必要的程式自變數新增至 [命令 自變數] 方塊。

  7. 請選擇 [確定]

在受控 DLL 專案中指定呼叫應用程式 (.NET Core, .NET 5+)

  1. [方案總管] 中,以滑鼠右鍵按兩下 C# 或 Visual Basic DLL 專案,然後選取 [ 屬性 ] (Alt+Enter)。

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

  3. 在 [ 啟動配置檔] 對話框中,選取 [建立新的配置檔 ] 圖示,然後選取 [ 可執行檔]。

    在 Visual Studio 2022 中建立新偵錯配置檔的 UI 螢幕快照。

  4. 在新配置檔的 [可執行檔],瀏覽至可執行檔的位置(.exe 檔案),然後選取。

  5. 在 [ 啟動設定檔] 對話框中,記下預設配置檔的名稱,然後選取配置檔並加以刪除。

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

    替代方法是手動編輯 launchSettings.json 檔案。 您希望 launchSettings.json 檔案中的第一個設定檔符合類別庫的名稱,並且該設定檔應列在檔案的最前面。

在 Managed DLL 專案中指定呼叫應用程式 (.NET Framework)

  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. 在 [命令行自變數] 或 [應用程式自變數] 字段中新增任何必要的命令行自變數

    Visual Studio 中 [C# 偵錯屬性] 視窗的螢幕快照。

  5. 若要儲存變更,請選取 [ 檔案>儲存選取的專案 ] (Ctrl+S)。

從 DLL 專案進行偵錯

  1. 在 DLL 項目中設定斷點。

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

  3. 將頂端的 [ 解決方案組態 ] 字段設定為 [ 偵錯]。 選取 F5,然後選取綠色的 開始箭號,或選擇偵錯>。

小提示

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

  • 如果您想要從原生 DLL 進入受控程式碼來破譯呼叫應用程式,或者反向操作,請啟用 混合模式偵錯

  • 在某些情況下,您可能需要指示調試程式在何處尋找原始程式碼。 如需詳細資訊,請參閱 使用未載入符號/未載入來源頁面