您是否曾經需要除錯並進入依賴於 NuGet 或 .NET 庫的程式碼,而這些庫並沒有構建為您的解決方案的一部分? 現在,除錯它們並不像除錯作為解決方案一部分的專案那麼容易。從 Visual Studio 2022 預覽3開始,我們在解決方案資源管理器中新增了一個新的“External Sources,外部原始碼”節點,這將使除錯外部原始檔變得更加容易。這個節點在除錯時出現,它將顯示託管模組的原始碼,其中載入的符號包含 Source Link 或 Source Server 資訊。您可以輕鬆地瀏覽這些原始檔,並在需要時通過放置斷點進行除錯。
Visual Studio 2022 團隊正在努力實現個人和團隊生產力的承諾。除錯外部原始碼是診斷工具中的一項功能,這只是我們正在研究的令人興奮的特性之一。
解決方案資源管理器中的外部原始碼
該特性向 Solution Explorer 中新增了一個新的頂級節點,當您處於除錯會話時,該節點就會出現,任何載入的帶有 Source Server 資訊的符號檔案(.pdb)都將出現在該節點下。
您可以通過展開樹項來瀏覽檔案。然後,雙擊一個專案從 Source Server 下載檔案,並在編輯器中開啟它。如果將模組設定為自動載入符號,則節點將在整個除錯會話中與模組原始碼保持一致。
如果你正在使用具有多個外部庫的應用程式,這些庫的元件已經發布到Source Server,例如 Newtonsoft.Json、CsvHelper、xUnit.net 等。這個特性將讓你更容易地瀏覽這些原始碼,並在需要時除錯它們。
設定要求
可以通過除錯設定下的選項來管理符號載入和原始碼下載。
按照下面的設定檢查表,確保模組可以出現在解決方案資源管理器的“外部原始碼”節點中。
1. Tools -> Options -> Debugging 的選項
Disable Just My Code:這將允許偵錯程式嘗試定位解決方案之外的程式碼符號。
2. Tools -> Options > Debugging -> Symbols 的選項
Enable Microsoft Symbol Server:這允許偵錯程式嘗試定位 Microsoft Symbol Server 上的符號
Enable NuGet.org Symbol Server:這允許偵錯程式嘗試在 NuGet.org Symbol Server 上定位符號
Enable Load All Modules:這允許偵錯程式載入所有模組的符號。(注意,這些選項將載入所有可用的符號,你可以通過選擇“ Load only specified modules,只載入指定的模組”和指定包含的模組來限制符號載入。)
3. 您可能還需要檢查 Debug -> Windows -> Modules,以檢視當前哪些模組載入到記憶體中,並在需要時手動載入任何模組。
4. 一旦雙擊“外部原始碼”中的專案,可能會提示您從伺服器下載原始碼; 單擊“接受”,您就可以在編輯器中檢視該專案的原始碼。
讓我們知道你的想法!
這是為 Visual Studio 建立一流的外部原始碼除錯體驗的第一步。我們很快也會為原生程式碼帶來這種改變。我們非常感謝您花時間嘗試我們的最新功能,我們希望您能提供反饋,感謝!
原文連結
https://devblogs.microsoft.com/visualstudio/debugging-external-sources-with-visual-studio/