1. 程式人生 > >Visual Studio 2017中使用SourceLink除錯ASP.NET Core原始碼

Visual Studio 2017中使用SourceLink除錯ASP.NET Core原始碼

背景

當我們在學習ASP.NET Core或者除錯ASP.NET Core程式的時候,有時候需要除錯底層程式碼,但是當我們在Visual Studio中除錯程式的時候,由於一些基礎庫或者第三方庫缺少pdb檔案,所以除錯這些庫的程式碼的時候,會出現斷點不能進去的情況。

例如,在如下程式碼中,我們希望除錯一下View()方法,看看其中的內部實現

但是當我們點選F11之後,程式會直接跳到下一步

Source Link

SourceLink是一組用於描述可嵌入到符號、二進位制檔案和包中的原始碼控制元資料的包和規範。官網連結:https://github.com/dotnet/sourcelink

SourceLink當前支援的原始碼來源

  • Github
  • Azure DevOps(VSTS)
  • TFS
  • Gitlab
  • Bitbucket

這裡個人理解就是如果你除錯的程式集是通過Nuget匯入的,並且該程式集的原始碼是寄存在Github, VSTS等原始碼平臺中的,使用Source Link,除錯階段就會自動從原始碼平臺下載指定程式碼,並進入斷點除錯

標註:這裡需要引入.NET Symbols的概念,我對這個理解的不是太深,希望有大牛給解釋一下, 我後續再做補充。相關文章Publishing and Consuming Symbols and Source for Debugging

如何在Visual Studio 2017中使用Source Link

Visual Studio 2017 15.3以上版本中已經集成了Source Link, 具體開啟方式如下

首先在 Options > Debugging > General中關閉Just My Code, 並啟用Enable Source Link Support

然後在 Options > Debugging > Symbols中啟用Microsoft Symbol Servers

最終效果

下面我們建立一個預設的asp.net core mvc站點,並以除錯方式啟動專案。 這裡我們還是將斷點打在HomeController

Index方法中。

當斷點到達return View()程式碼塊時,我們點選F11, Visual Studio會彈出以下視窗,提示你是否想要下載原始檔進行除錯

點選確定之後,斷點就進入了