无法找到或打开 PDB 文件 - PDB 不是用 DLL 构建的

Posted

技术标签:

【中文标题】无法找到或打开 PDB 文件 - PDB 不是用 DLL 构建的【英文标题】:Cannot find or open the PDB file - PDB not built with DLL 【发布时间】:2017-03-04 15:33:05 【问题描述】:

我的 Visual Studio 2013 ASP.NET webform 应用程序有 3 个 DLL 程序集。调试时,三个 DLL 中只有两个(Project/VB 模块和一个 C# 模块)在同一个 Temporary ASP.NET Files 目录中创建 DLL 和 PDB。第三个 DLL 也是 C# 模块,PDB 不是生成到与 DLL 相同的目录。

找不到最后一个问题模块的符号。当我尝试手动加载符号文件时,选择在与 DLL 相同的日期/时间创建的 PDB,我收到错误“在此文件夹中找不到匹配的符号文件。”

为什么要在 DLL 目录中为两个模块而不是为第三个模块构建 PDB?我在 Symbol Settings 对话框中尝试了各种选项,更改了 Symbol 文件位置和 Cashe 目录,清理并重建了解决方案,结果没有改变。

【问题讨论】:

【参考方案1】:

您是否检查了高级构建对话框(在您的项目属性(缺少 pdb 的那个)中,然后调试信息: pdbonly 或 full ? 它不能设置为“无”

【讨论】:

我已经检查了高级构建设置,并且选项显示与您的屏幕截图中一样。调试信息已设置为完整。【参考方案2】:

此问题已解决。未生成符号文件的 C# 模块是 DLL 的旧副本。尝试重建模块并没有替换旧的 DLL。

首先删除旧 DLL 的所有副本,然后重新构建模块。下一次调试尝试显示新的 DLL 和 PDB 文件已正确创建。

【讨论】:

【参考方案3】:

在对测试项目的 app.config 进行更改后尝试运行测试时,我也突然遇到此错误。这些更改被证明是无效的。

【讨论】:

以上是关于无法找到或打开 PDB 文件 - PDB 不是用 DLL 构建的的主要内容,如果未能解决你的问题,请参考以下文章

部分无法查找或打开 PDB 文件

Visual Studio 2013 RC 中的“无法找到或打开 PDB 文件”

C# 远程调试器 - 无法找到或打开 PDB 文件

如何修复“无法找到或打开 PDB 文件”。在 Visual Studio 2017 中

无法查找或打开 PDB 文件解决办法

VS“无法查找或打开PDB文件”是怎么回事?如何解决