【发布时间】: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