前言:
在我們日常開發過程中常常會使用到很多其他封裝好的第三方中間件(NuGet依賴項)、類庫或者是.NET架構中自帶的庫。但是當你想要對這些類庫的方法設定斷點調試,然後發現無法F11(逐語句)調試進源碼中調用堆棧大部分顯示為灰色,而不讓您看到調用堆棧中較早發生的事情。如果可以設定斷點并在NuGet依賴項或架構本身上使用調試器的所有功能,那麼我們的源碼調試體驗和生産效率會提升非常的多。那麼Source Link這項技術剛好就滿足了我們對源碼調試的意願。
什麼是Source Link:
Source Link是一項技術,可讓開發人員從NuGet調試.NET程式集的源代碼。源連結在建立NuGet程式包時執行,并将源代碼控制中繼資料嵌入程式集和程式包中。下載下傳該程式包并在Visual Studio中啟用了Source Link的開發人員可以進入其源代碼。Source Link提供了源代碼控制中繼資料,以建立出色的調試體驗。
GitHub源碼位址:
https://github.com/dotnet/sourcelink
Visual Studio配置啟用Source Link:
拓展:符号檔案即為.pdb的檔案。
1、選擇工具>選項>調試>符号,并確定已選中“ Microsoft符号伺服器(.NET架構相關的庫)和NuGet.org符号伺服器”選項。為符号高速緩存指定目錄是避免再次下載下傳相同符号,提高源碼檢視效率。

2、在“工具” >“選項” >“調試” >“正常”中禁用【啟用“僅我的代碼”】,因為我們希望調試器嘗試為解決方案之外的代碼找到符号。驗證是否已選中(預設情況下)。如果您想進入.NET Framework代碼,則還需要選中。.NET Core不需要此功能。
Visual Studio啟用Source Link調試:
接下來以Newtonsoft.Json(一款.NET中開源的Json序列化和反序列化類庫)為例。有時您想進入架構來檢視發生了什麼,特别是如果發生了意外的事情。使用Source Link,您可以像使用自己的代碼一樣進入架構方法,檢查所有變量并設定斷點。
未啟用Source Link調試之前:
如果您在沒有Source Link的情況下嘗試了此操作,那麼在按F11介入之前和之後,就會看到以下内容,無法進入類庫中檢視其源碼。
啟用Source Link調試:
調試器不會介入,是因為沒有符号或源。一旦配置了Source Link,當我們進入時,可以通過F11直接調試Nuget依賴庫的源碼(因為第一次需要下載下傳源檔案到本地可能等待時間要久一些)。
指定下載下傳對應檔案的源代碼進行調試:
作者:追逐時光者
作者簡介:一個熱愛程式設計,善于分享,喜歡學習、探索、嘗試新事物,新技術的程式猿。
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。如果該篇文章對您有幫助的話,可以點一下右下角的【♥推薦♥】,希望能夠持續的為大家帶來好的技術文章,文中可能存在描述不正确或錯誤的地方,歡迎指正、補充,不勝感激 !