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会弹出以下窗口,提示你是否想要下载源文件进行调试
点击确定之后,断点就进入了
- Visual Studio 2017中使用SourceLink调试ASP.NET Core源码
- Visual Studio 2017使用Asp.Net Core构建Angular4应用程序
- 使用visual studio 2017开发Asp.net core mvc项目
- 2019年第一天——使用Visual Studio 2019 Preview创建第一个ASP.Net Core3.0的App
- Visual Studio 2017 ASP.NET Core开发
- Visual Studio 2017下ASP.NET CORE的TagHelper智能提示解决办法
- 使用 Visual Studio 的 ASP.NET Core MVC 和 Entity Framework Core 入门 (1 of 10)
- [解决]ASP.NET MVC 4/5 源码调试(source code debug)
- 微软推出ASP.NET Core 2.0,并支持更新Visual Studio 2017
- 使用 Visual Studio 部署 .NET Core 应用 ——ASP.NET Core 发布的具体操作
- ASP.NET CORE使用控制台程序调试web应用
- Visual Studio 2017 ASP.NET Core开发
- Visual Studio 2017 ASP.NET Core开发
- 使用VS Code开发调试ASP.NET Core 1.0
- Visual Studio 2015/2017 与ASP.NET CORE 联合创建具有SPA模式的Angular2模板
- 转载 使用Glimpse调试ASP.NET MVC应用程序
- Asp.net使用ajax无刷新上传文件(附源码)
- asp.net mvc 使用Html.ActionLink显示图片链接
- 使用StructureMap扩展ASP.NET MVC三层结构框架系列文章总结篇(附源码下载)