【问题标题】:Why is Visual Studio skipping over my method when debugging?为什么 Visual Studio 在调试时会跳过我的方法?
【发布时间】:2014-03-01 01:47:27
【问题描述】:

我正在尝试调试库中的一个方法(如果重要的话,它是通过 NuGet 安装的),而 Visual Studio 正在跳过它并显示以下消息:

Step into:不带符号的单步方法 'Cpi.Net.SecureMail.CryptoHelper.FindCertificate'

我在调试设置中添加了一个符号服务器源,当我第一次调试程序时,它告诉我它正在下载这个库的符号。我已验证符号确实已下载,因为它们显示在我的符号缓存目录中。

感谢 SLaks,我现在知道从符号服务器下载的 PDB 显然是过时的格式。如果我直接从 TeamCity 的构建工件中检索 PDB,则调试工作正常。

看来,不知何故或出于某种原因,PDB 文件正在通过 NuGet 打包过程或通过符号服务器下载过程 (ProGet) 进行更改。

现在,问题的范围显然已大大扩大。

【问题讨论】:

  • 检查调试,模块窗口。
  • 嗯。以前从未调查过。它说“PDB 格式已过时。”
  • 有人想知道为什么 PDB 格式会过时。
  • @Mark:你试过删除你的 pdb 文件然后重新编译吗?
  • @AndyG 好吧,就像我更新了要说明的问题一样,如果我直接从库的构建位置(TeamCity)获取库的 PDB,它就可以工作。我还从 TeamCity 的 NuGet 包副本中获取了它,它也有效。显然 ProGet 正在以某种方式破坏它?

标签: c# debugging symbols proget


【解决方案1】:

事实证明,ProGet 确实在修改 PDB 文件,以便让它指向源服务器而不是源文件的本地构建文件夹。出于某种原因,ProGet 正在创建一个 Visual Studio 不喜欢的 PDB。 Inedo 和我还不能确定原因。

【讨论】:

  • Inedo 意识到了这个问题:inedo.com/support/questions/1411 我建议您直接联系他们(通过电子邮件或实时聊天),让他们知道您遇到了同样的问题。受影响的人越多,他们解决问题的可能性就越大。
猜你喜欢
  • 2010-10-13
  • 1970-01-01
  • 1970-01-01
  • 2010-09-24
  • 1970-01-01
  • 1970-01-01
  • 2010-11-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多