首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >与Azure DevOps符号服务器的源链接

与Azure DevOps符号服务器的源链接
EN

Stack Overflow用户
提问于 2019-03-04 17:39:26
回答 1查看 5.4K关注 0票数 18

关于如何在Nuget包中使用Symbols、Source files和Source Link进行调试,互联网上有几种记录在案的方法,但老实说,很难理解哪种方法对我来说是好的。

我们有一台Azure Nuget服务器,我们在其上生成DevOps包,同时使用构建管道中的described here任务将.pdb文件发布到Azure DevOps符号服务器

我的项目‘在.csproj文件中还引用了Microsoft.SourceLink.Vsts.Git和以下代码

代码语言:javascript
复制
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<EmbedUntrackedSources>true</EmbedUntrackedSources>

我读过几篇博客文章,但我最相信的更新来源当然是官方Source Link Git repository

readme.md文件说

通常不再推荐在.nupkg中包含PDB的

,因为这样会增加软件包的大小,从而恢复使用软件包的项目的时间,而不管用户是否需要通过库的源代码进行调试

我同意这一点,这就是为什么我要使用Symbol Server,而不是将.pdb文件包含在Nuget包中。因此,请不要将我的问题标记为this one的副本,因为被接受的答案正是我不想做的。

自述文件还指出,

.snupkg符号包有一些限制

  • 它们当前不支持Windows (由VC++生成,或者对于将build属性DebugType设置为full的托管项目)
  • 它们需要使用更新的C#/VB编译器(Visual Studio2017 debugger.
  • Not 9)来构建库。
  • 包的使用者还需要Azure DevOps工件PDB支持的Visual Studio2017更新9 PDB

所以至少我知道我不能用它。

但是什么才是正确的设置Source Link并工作的方法呢?

当我调试我的测试控制台应用程序时,它成功地将.pdb文件下载到我的Symbols缓存文件夹中,但是如果我尝试使用F11单步执行来自我的Nuget包的代码,它就不能工作。(但是,它会步入System.String.Concat,因为我的简单测试Nuget包实际上是连接一些字符串)

我试图运行sourcelink test TestSourceLink.pdb,但我得到了一个error: url hash does not match。我在here上读到sourcelink test是一个遗留的东西,不支持像我们这样的私有存储库的身份验证。

使用我的浏览器,如果我访问sourcelink print-json TestSourceLink.pdb提供的网址,我可以看到最新的源代码。但现在的问题是,为什么Visual Studio无法下载源代码?我在VS中通过了这个Azure DevOps服务器的身份验证,因为我能够安装来自这个服务器的Nuget包。

以下是我的调试设置:

非常感谢。我真的搞不懂这块拼图缺失的部分是什么

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54980381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档