按关键词阅读:
介绍Source Link是一组软件包和一个规范 ,它将一些元数据添加到PDB文件 , 以将本地文件重新映射到GitHub上的文件 , 因此Visual Studio可以在这需要时下载文件, 该项目的目的是可以为使用Nuget安装软件的用户提供源代码调试, Microsoft库(例如.NET Core和Roslyn)都已启用Source Link 。
使用NuGet包是向项目添加依赖项的一种非常方便的方法 , 但是 , 当您遇到NuGet软件包的问题并想对其进行调试时 , 会有点麻烦 , 你可能需要从在github 查看源代码 , 或者直接git clone到本地 ,Visual Studio 2017 15.3以上版本中已经集成了Source Link , 现在你可以非常方便的在VS中调试 .Net Core 和 Nuget分发的软件包的源代码 , 并且不需要安装 ReSharper 这些工具 , 这是非常愉快的源代码调试体验 。
sourcelink 最初的版本是 @ctaggart 实现的 , 看了下 , 原项目已存档 ,然后 .Net 团队开始注意到这个项目 , 和 ctaggart 一起做了现在的版本 。
官网地址:
SourceLink 支持一下几种源代码来源:
- github.com and GitHub Enterprise
- GitLab
- Azure Repos (former Visual Studio Team Services)
- Azure DevOps Server (former Team Foundation Server)
- Bitbucket
打开 工具 -> 选项 -> 调试 ,勾选 启用源链接支持 , 取消勾选 启用仅我的代码
文章插图
设置符号包(symbol packages) 的地址 , 它包含了源代码文件的url地址
文章插图
Newtonsoft.Json 是我经常使用的一个软件包, 也是 Nuget 下载量第一的包 , 我想看一下它的源代码 , 了解如何进行序列化的 , 我新建了一个 .Net Core 的控制台项目 , 现在断点在序列化的这一步
文章插图
现在直接 F11 逐语句调试, 第一次的话 , 由于网络原因 , 可能会比较慢 , 等待即可
文章插图
现在直接进入到了 Newtonsoft.Json 的源代码 ,它将无缝地让我继续调试会话 , 非常方便, 如果您在公司内部使用Gitlab, Devops或在开源环境中发布了NuGet , 则绝对应该使用SourceLink 。
它的路径在 C:\Users\Spring Lee\AppData\Local\SourceServer\c15d6df0a4a5956040073c3613425e76998a1599e7eeac2338c52ed35d1a47b7\Src\Newtonsoft.Json\JsonSerializer.cs
在项目中使用SourceLink接下来我会创建一个 netstandard2.0 版本的类库项目 , 它的源码放在了github , 并且我会发布到 Nuget.org , 当然其他方式(Azure Devops,Gitlab) 也是支持的 , 让它支持SourceLink
创建完成后 , 首先需要引入 Microsoft.SourceLink.GitHub
文章插图
右键项目编辑项目文件, 编辑csproj文件
netstandard2.0truetrue snupkg
然后需要提交 git , 推送代码 。准备工作完成后 , 项目右键 , 直接打包 , 会同时生成 .nupkg 和 .snupkg(符号包)文章插图
打开 .snupkg 文件 , 查看 PDB Sources, 发现pdb 文件包含了源代码文件的url地址
文章插图
然后同时上传到 Nuget.org, 上传成功后 , 会同时有 package 和 symbols 的下载标识
文章插图
【探索 .Net Core 的 SourceLink】到这里为止 , 一个支持source link 的nuget包已经发布成功了 , 你可以用同样的方式进行源代码调试
作者:SpringLeee
出处:
稿源:(未知)
【傻大方】网址:http://www.shadafang.com/c/111J302552020.html
标题:探索 .Net Core 的 SourceLink