什么是 PDB 文件,我如何在重建解决方案时将其从发布文件夹中排除?
5 回答
PDB 文件包含供调试器使用的信息。无论如何,Release 构建中的信息都比 Debug 构建中的信息少。但是,如果您希望它根本不生成,请转到项目的构建属性,选择发布配置,单击“高级...”并在“调试信息”下选择“无”。
我最初问自己一个问题“我需要将 PDB 文件部署到客户的机器上吗? ”,在阅读了这篇文章后,决定排除该文件。
一切都很好,直到今天,当我试图弄清楚为什么一个包含 an 的消息框Exception.StackTrace
缺少文件和行号信息时——这是对异常进行故障排除所必需的。我重新阅读了这篇文章,发现了关键信息:虽然 PDB 不是应用程序运行所必需的,但文件和行号必须存在于StackTrace
字符串中。我将 PDB 文件包含在可执行文件夹中,现在一切都很好。
PDB是P rogram -Debug Data Base的缩写。顾名思义,它是一个存储库(持久存储,例如数据库),用于维护在调试模式下运行程序所需的信息。它包含调试代码(在 Visual Studio 中)所需的许多重要信息,例如,在您希望调试器在 Visual Studio 中中断的位置放置断点的位置。
*.pdb
这就是如果您从调试目录中删除文件,Visual Studio 无法达到断点的原因。Visual Studio 调试器还可以告诉您堆栈跟踪中发生异常的代码文件的确切行号。它只能在文件的帮助下做到这一点*.pdb
。因此 PDB 文件对于调试目的非常有帮助。
一般不建议排除*.pdb
文件的生成。从生产发布的角度来看,您应该做的是创建 PDB 文件,但不要在产品安装程序中将它们发送到客户站点。将所有生成的 PDB 文件保留在符号服务器上,以便将来根据需要使用/引用。
在调试进程崩溃问题的情况下,这一点尤为重要。在分析故障转储文件时,如果未保留在构建过程中创建的原始*.pdb
文件,那么 Visual Studio 将无法找出导致崩溃的确切代码行。
如果您仍想完全禁用*.pdb
任何版本的文件生成,请转到项目的属性 -> 构建选项卡 -> 单击Advanced按钮 ->none
从“调试信息”下拉框中选择 -> 按OK如下快照所示.
注意:必须为“调试”和“发布”构建配置单独完成此设置。
PDB 文件包含调试器使用的信息。它不需要运行您的应用程序,也不需要包含在您的发布版本中。
您可以禁止在 Visual Studio 中创建 pdb 文件。如果您是从命令行或脚本构建,则省略该/Debug
开关。