【问题标题】:"PDB format is not supported" with .NET portable debugging information带有 .NET 可移植调试信息的“不支持 PDB 格式”
【发布时间】:2017-05-31 11:56:26
【问题描述】:

最近几天我一直hunting down a problem - 结论:

我的 Visual Studio 2017 调试器无法在 .NET Framework 项目中使用“可移植”格式的 PDB。

对于可移植格式,我的意思是转到项目的设置,然后转到 Build -> Advanced,然后在 Debugging information 下选择 portable

当我开始调试这样构建的 .NET Framework 项目时,断点不会受到影响。

当我暂停调试器并寻找它没有加载符号的原因时,它说(在Symbol load information 下):

不支持PDB格式

我可以用任何 .NET Framework 项目重现这一点。目标框架似乎并不重要。我尝试了 .NET 4.5.2 和 4.6.2。

不过,它适用于 .NET Core 项目。

现在,奇怪的是完全相同的项目在另一台计算机上运行良好。

因此,我的计算机似乎缺少某些内容或配置错误。但我的谷歌搜索没有出现任何东西。任何想法如何解决这个问题?

【问题讨论】:

  • 水晶球说你使用了错误的调试引擎。工具 > 选项 > 调试 > 常规 > 确保未勾选“使用托管兼容模式”。请考虑使用“可移植”格式还不是最佳选择,并且当您在项目中也有 C++/CLI 代码时永远不应该使用它,现在它真的只需要在需要调试的 .NETCore 项目上使用Linux 或 MacOS。
  • @HansPassant 你的水晶球是对的。我从来没有(有意识地)看到这个选项。不知道为什么它被启用。通过禁用它,它现在可以工作了。也许您应该将评论转换为答案:)
  • 请注意,.NET“桌面”框架本身(至少在 4.7.1 版之前)无法读取可移植的 pdb 文件。您可以将它们创建为构建的一部分,并且调试可能会起作用,但是在为异常创建回溯时,运行时将无法包含源文件名和行号。因此,为了获得最佳调试/运行时体验,对普通框架使用“完整”pdb 类型,对网络核心/标准使用可移植。
  • @HansPassant 有答案,或者至少它对我有用。他绝对应该把它变成一个答案:) 谢谢汉斯!

标签: c# .net visual-studio-2017 visual-studio-debugging pdb-files


【解决方案1】:

您可能使用了错误的调试引擎。

导航:工具 > 选项 > 调试 > 常规

确保勾选“使用托管兼容模式”。

【讨论】:

  • @HansPassant 从未将他的精彩评论转换为答案,因此我将其设为社区 wiki 答案。阅读他的评论以获得更多见解。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-31
  • 2021-09-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多