首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用VS和R#从MyGet中调试PDBs

使用VS和R#从MyGet中调试PDBs
EN

Stack Overflow用户
提问于 2019-07-23 22:22:37
回答 1查看 109关注 0票数 0

我正在尝试调试NuGet源代码(Project通过MyGet中的一个NuGet包引用Project ),我被困在“断点不会被击中,当前的源代码是不同的”错误,我没有想法。

我所做的:

  • 在VS中添加了MyGet符号服务器。
  • 装配非优化与一个完整的PDB。
  • 统一风格的.editorconfig用于正确的编码和LF行结束(源代码在Git中).

符号在MyGet中:

这些模块似乎正确加载:

R#似乎使用了错误的哈希,并给出了错误:

代码语言:javascript
复制
PdbNavigator: Downloader: https://private-symbol-server/symbols::Phx.Security.Web.NETCore.dll::02da18bf9fbf42e1bd6263e56ca57af8FFFFFFFF -> Ok (cached)
PdbNavigator: No debugging information found on symbol servers for Phx.Security.Web.NETCore, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

VS抱怨当我手动将断点添加到源文件时源代码是不同的:

在这一点上,我愿意接受所有的建议和想法!

EN

回答 1

Stack Overflow用户

发布于 2019-07-24 03:48:36

当前不会命中断点,当前的源代码是不同的错误。

它抱怨VS找到的xx.cs文件与用于构建xx.dll的版本略有不同。我猜想,在构建xx.cs文件并将其发布到nuget服务器后,您可能对xx.dll文件做了一些更改。

您可以尝试重新构建Nuget项目,并将其源文件、pdb和程序集第二次推送到符号服务器。(清理现有版本)

之后,在新解决方案中创建一个新项目,以使用该包并检查问题是否仍然存在。(不确定原始Bar项目是否会影响在同一解决方案中的调试,因此请创建一个新的解决方案进行检查)

此外,您还可以通过Go Debug菜单=> Options => General =>禁用Require source files to exactly match the original version选项来解决此错误。

大多数情况下,我们应该选择此选项,以确保我们在调试过程中看到的是我们正在运行的内容,但是由于这是您的个人项目,如果您能够确保您的符号服务器中的xx.cs和程序集是您想要的正确版本,那么您可以在调试nuget项目时尝试禁用它。见推荐配置

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

https://stackoverflow.com/questions/57172955

复制
相关文章

相似问题

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