在 Visual Studio 中設定偵錯和發行組態
Visual Studio 專案針對您的程式具有不同的版本和偵錯組態。 您可以組建 [偵錯] 版本進行偵錯,並組建 [發行] 版本散發最終版本。
在 [偵錯] 組態中,程式會使用完整符號偵錯資訊,在未進行最佳化的情況下編譯。 最佳化會使偵錯變得複雜,因為原始程式碼與產生的指令之間關係較為複雜。
程式的 [發行] 組態不包含符號偵錯資訊,而且會完整進行最佳化。 對於受控程式碼和 C++ 程式碼,可以在 .pdb 檔案中產生偵錯資訊,視所用的編譯器選項而定。 如果您日後必須偵錯發行版本,建立 .pdb 檔可能會非常實用。
如需組建組態的詳細資訊,請參閱了解組建組態。
您可以從 [建置] 功能表、從工具列,或在專案的屬性頁中變更組建組態。 專案屬性頁因語言而異。 下列程序示範如何從功能表和工具列變更組建組態。 有關如何變更不同語言專案中組建組態的詳細資訊,請參閱以下的相關內容一節。
變更組建組態
若要變更組建組態,請執行下列其中之一:
在工具列的解決方案組態清單中,選擇偵錯或發行。
或
從 [建置] 功能表,選取 [組態管理員],然後選取 [偵錯] 或 [發行]。
產生組建的符號 (.pdb) 檔案 (C#、C++、Visual Basic、F#)
您可以選擇產生符號 (.pdb) 檔案,以及要包含哪些偵錯資訊。 針對大部分的專案類型,編譯器預設會產生偵錯和發行組建的符號檔,而其他預設設定則因專案類型和 Visual Studio 版本而有所不同。
重要
偵錯工具只會載入與可執行檔建置時所建立的 .pdb 檔案完全相同之可執行檔的 .pdb 檔案 (也就是說,.pdb 必須是原始 .pdb 檔案或該檔案的複本)。 如需詳細資訊,請參閱 Why does Visual Studio require debugger symbol files to exactly match the binary files that they were built with? (Visual Studio 為何要求偵錯工具符號檔案必須完全符合當初組建這些符號檔案時所使用的二進位檔案?)。
每個專案類型設定這些選項的方式可能不同。
產生 C# 或 ASP.NET Core 專案的符號檔 (僅限 .NET Core、.NET 5+)
如需 C# 中偵錯組態之專案設定的詳細資訊,請參閱<C# 偵錯組態的專案設定>。 (對於 Visual Basic 中的 .NET 專案,符號檔會設定為與 .NET Framework 中的相同。)
在 [方案總管] 中,以滑鼠右鍵按一下專案,然後選擇 [屬性]。
在側邊窗格中,選擇組建>一般。
在 [最佳化程式碼]區段中,選擇 [偵錯] 或 [發行]。
在 [偵錯符號] 清單中,選擇 [PDB 檔案]、[目前平台]、[PBD 檔案]、[可攜式] 或 [內嵌]。
可攜式格式是 .NET Core 的最新跨平台格式。 如需選項的詳細資訊,請參閱 [進階組建設定] 對話方塊 (C#)。
建立您的專案。
編譯器會在與可執行檔或主要輸出檔相同的資料夾中建立符號檔。
產生 C#、ASP.NET 或 Visual Basic 專案的符號檔 (.NET Framework)
如需 C# 或 Visual Basic 中偵錯組態之專案設定的詳細資訊,請參閱 C# 偵錯組態的專案設定或 Visual Basic 偵錯組態的專案設定。
在 [方案總管] 中,以滑鼠右鍵按一下專案,然後選擇 [屬性]。
在側邊窗格中,選擇 [建置] (或在 Visual Basic 中的[編譯])。
在頂端的 [組態] 清單中,選擇 [偵錯] 或 [發行]。
選取 [進階] 按鈕 (或 Visual Basic 中的 [進階編譯選項] 按鈕)。
在 [偵錯資訊] 清單中 (或 Visual Basic 中的 [產生偵錯資訊] 清單中),選擇 [完整]、[僅限 Pdb] 或 [可攜式]。
可攜式格式是 .NET Core 的最新跨平台格式。 如需選項的詳細資訊,請參閱 [進階組建設定] 對話方塊 (C#)。
建立您的專案。
編譯器會在與可執行檔或主要輸出檔相同的資料夾中建立符號檔。
產生 C++ 專案的符號檔
在 [方案總管] 中,以滑鼠右鍵按一下專案,然後選擇 [屬性]。
在 [組態] 清單中,選擇 [偵錯] 或 [發行]。
在側邊窗格中,選擇連結器>偵錯,然後選取產生偵錯資訊的選項。
在大部分 C++ 專案中,預設值為 [產生偵錯資訊 (/DEBUG)]。
如需 C++ 中偵錯組態之專案設定的詳細資訊,請參閱 C++ 偵錯組態的專案設定。
設定 [產生程式資料庫檔案] 的選項。
在大部分 C++ 專案中,預設值為
$(OutDir)$(TargetName).pdb
,它會在輸出資料夾中產生 .pdb 檔案。建立您的專案。
編譯器會在與可執行檔或主要輸出檔相同的資料夾中建立符號檔。