.NET Core使用Source Link提升源代碼調試體驗和生產效率

前言:

  在咱們平常開發過程當中經常會使用到不少其餘封裝好的第三方中間件(NuGet依賴項)、類庫或者是.NET框架中自帶的庫。可是當你想要對這些類庫的方法設置斷點調試,而後發現沒法F11(逐語句)調試進源碼中調用堆棧大部分顯示爲灰色,而不讓您看到調用堆棧中較早發生的事情。若是能夠設置斷點並在NuGet依賴項或框架自己上使用調試器的全部功能,那麼咱們的源碼調試體驗和生產效率會提高很是的多。那麼Source Link這項技術恰好就知足了咱們對源碼調試的意願。git

什麼是Source Link:

  Source Link是一項技術,可以讓開發人員從NuGet調試.NET程序集的源代碼。源連接在建立NuGet程序包時執行,並將源代碼控制元數據嵌入程序集和程序包中。下載該程序包並在Visual Studio中啓用了Source Link的開發人員能夠進入其源代碼。Source Link提供了源代碼控制元數據,以建立出色的調試體驗。github

GitHub源碼地址:緩存

https://github.com/dotnet/sourcelink服務器

Visual Studio配置啓用Source Link:

拓展:符號文件即爲.pdb的文件。框架

一、選擇工具>選項>調試>符號,並確保已選中「 Microsoft符號服務器(.NET框架相關的庫)和NuGet.org符號服務器」選項。爲符號高速緩存指定目錄是避免再次下載相同符號,提升源碼查看效率。工具

 二、在「工具」 >「選項」 >「調試」 >「常規」中禁用【啓用「僅個人代碼」】由於咱們但願調試器嘗試爲解決方案以外的代碼找到符號。驗證是否已選中(默認狀況下)。若是您想進入.NET Framework代碼,則還須要選中.NET Core不須要此功能。
spa

Visual Studio啓用Source Link調試:

    接下來以Newtonsoft.Json(一款.NET中開源的Json序列化和反序列化類庫)爲例。有時您想進入框架來查看發生了什麼,特別是若是發生了意外的事情。使用Source Link,您能夠像使用本身的代碼同樣進入框架方法,檢查全部變量並設置斷點。3d

未啓用Source Link調試以前:

若是您在沒有Source Link的狀況下嘗試了此操做,那麼在按F11介入以前和以後,就會看到如下內容,沒法進入類庫中查看其源碼。調試

 啓用Source Link調試:

 調試器不會介入,是由於沒有符號或源。一旦配置了Source Link,當咱們進入時,能夠經過F11直接調試Nuget依賴庫的源碼(由於第一次須要下載源文件到本地可能等待時間要久一些)。code

 

 

指定下載對應文件的源代碼進行調試:

相關文章
相關標籤/搜索