.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

 

 

指定下载对应文件的源代码进行调试:

相关文章
相关标签/搜索