背景

最开始在开发java的时候,eclipse可以直接调试源码,但是在微软开源前,基本上没办法调试源码,完全靠ReSharper反编译来调试。后来微软开源了.NetCore,在看.NetCore源码的时候发现测试项目用到了Source Link。于是好奇心驱使点进链接一看才知道是用于源码调试的工具,果断开整。

Source Link是一种为二进制文件提供无关语言和源代码控制的调试系统。目的是为任何基于Nuget构建项目的用户提供几乎无感的源码调试。微软开发并维护。
Source Link是一组用于描述可嵌入到符号、二进制文件和包中的源代码控制元数据的包和规范。官网链接:https://github.com/dotnet/sourcelink

SourceLink当前支持的源码来源

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

Visual Studio 17 15.3以上版本中已经支持了Source Link,Visual Studio 17 15.7以上版本支持通过安全验证从Github私有库和Azure DevOps仓库下载源码。

首先在 选项(Options) > 调试(Debugging) > 常规(General)中取消勾选启用"仅我的代码"(Enable Just My Code), 并勾选启用源链接支持(Enable Source Link Support)

取消勾选-启用“仅我的代码”

勾选-启用源链接支持

勾选-Microsoft符号服务器

最终效果

以下创建一个默认的 Asp.Net Core Mvc站点,并以调试方式启动项目。 这里我们还是将断点打在Program的CreateHostBuilder方法中。

断点

点击F11进入源码

F11进入源码

还可以通过安全验证下载私有仓库源码调试