大家好,我是本期的实验室研究员——张广坡。明天我将通过试验和残缺的操作过程,向大家介绍如何应用 Source Link 调试 Bootstrap Blazor 开源组件库。接下来就让咱们一起到实验室中一探到底吧!
微软MVP实验室研究员
思路浅析
当咱们应用第三方组件包的时候,尤其是遇到小问题的时候,特地想通过逐渐调试进入到某个办法外部去看看其具体逻辑,这样做会给咱们带来极大的便当,而后事实十分残暴,咱们在一无源代码二无 PDB 的状况下想要实现逐渐调试是不可能的工作。那么咱们如何能力逐渐调试第三方组件包呢?
通过本次实现,咱们以第三方 Bootstrap Blazor 组件包为例,通过 Source Link 对此组件包进行逐渐调试。
喜爱 Bootstrap Blazor 组件库的小伙伴们在日常开发过程中经常会遇到一些问题,十分想对 Bootstrap Blazor 组件库进行代码调试,是否有一种简略的方法让咱们不须要我的项目援用 Bootstrap Blazor 的状况下就能够逐语句调试呢?答案就是 Source Link。
什么是Source Link
Source Link 是开发人员的一项生产力性能,它容许在编译过程中将无关程序集原始源代码的惟一信息嵌入到PDB中的一组软件包和标准。通过 SourceLink 增加到 PDB 文件中的元数据,和本地源代码文件、仓库内的代码文件建设了一个映射关系。因而 Visual Studio 调试时能够在须要时下载文件, 并为用户提供源代码调试, Microsoft库(例如.NET Core和Roslyn)都已启用Source Link。
开源地址:
https://github.com/dotnet/sou...
咱们本地开发时传统的调试模式还是通过援用源代码的形式进行代码调试,这使得咱们很难调试没有源代码的第三方组件库。咱们能够通过 Source Link 在无需源码的状况下取得极佳的调试体验。
配置 Visual Studio IDE 工具
步骤 1 - 配置 NuGet.org 符号源
默认状况下,NuGet.org 符号源未启用。为了让 SourceLink 失常工作,Visual Studio 须要可能下载这些源代码,因而咱们必须先进行设置。
在 Visual Studio 中,转到 工具–>选项–>调试–>符号:
确保选中“NuGet.org 符号服务器”选项。
步骤2 - 禁用 “仅我的代码”
接下来,咱们须要转到 工具–>选项–>调试–>惯例设置窗口并禁用“仅我的代码”选项:
步骤 3 - 启用源服务器和源链接反对
默认状况下,Visual Studio 中已启用 SourceLink 反对,但未启用源服务器反对。
再次,转到 工具->选项->调试->惯例设置窗口并进行以下更改:
配置结束,咱们开始进入调试之旅。
调试组件
新建工程援用 Bootstrap Blazor 组件包,后开始进行调试。
命中断点后,按 Ctrl + Alt + U 快捷键,调出 Modules 窗口。
从 Modules 窗口通过 Name 排序后能够看到咱们要调试的 Bootstrap Blazor 组件包并未加载 PDB 文件,此时咱们点击右键如图所示,抉择 Load Symbols 依据每个人的网络状况会有一些延时,此时 Visual Studio 会从 Nuget.org 上下载组件包所需的 PDB 文件,下载结束后,咱们按 F11 (逐行调试)弹出对话框如下:
此时因为本地仅有刚刚下载的 PDB 文件,必须有源代码才能够进行逐行调试,所以弹出对话框申请下载源代码并调试,即能够进入到组件包内。
设置命中断点
在咱们的日常调试中更多的时候是对源码进行断点,程序运行时命中断点,咱们进行调试。应用 Source Link 后咱们是否设置源代码断点呢?当然是能够的,下面的办法是须要哪个源码就下载哪个源码,其实是十分不不便的。咱们能够一次性把所有源码下载下来,本人依据需要来关上源码文件进行断点设置,如果所示操作,解压缩所有源码。
设置解决方案显示其余我的项目。
Source Link 反对
- Azure Repos / DevOps
- GitLab
- BitBucker
- Github
总结
本文以 Bootstrap Blazor 组件库为例解说了如何通过 Source Link 进行第三方包调试,其余已公布 snupkg 的第三方组件包同样能够调试,包含微软的 asp.net core 框架相干代码。
*Bootstrap Blazor:
- https://github.com/dotnetcore...
*Source Link:
- https://docs.microsoft.com/en...
- https://devblogs.microsoft.co...
*Github:
- https://github.com/dotnet/sou...
微软最有价值专家
微软最有价值专家是微软公司授予第三方技术专业人士的一个寰球奖项。28年来,世界各地的技术社区领导者,因其在线上和线下的技术社区中分享专业知识和教训而取得此奖项。
MVP是通过严格筛选的专家团队,他们代表着技术最精湛且最具智慧的人,是对社区投入极大的激情并乐于助人的专家。MVP致力于通过演讲、论坛问答、创立网站、撰写博客、分享视频、开源我的项目、组织会议等形式来帮忙别人,并最大水平地帮忙微软技术社区用户应用Microsoft技术。
更多详情请登录官方网站:
https://mvp.microsoft.com/zh-cn
扫码关注微软中国MSDN,获取更多微软一手技术信息和官网学习材料!