PDB文件是程序调试数据库的缩写,其中包含了编译器生成的符号信息和源代码行号等。在重新构建解决方案时,您可以通过配置项目属性来排除PDB文件,以便它们不会出现在发布文件夹中。
我原本问了自己这个问题:“我需要将PDB文件部署到客户机上吗?”,在阅读了这篇文章后,决定排除该文件。
一切都运行得很顺利,直到今天,当我试图弄清楚为什么一个包含Exception.StackTrace
的消息框中缺少文件和行号信息时 - 这些信息是解决异常必要的。我重新阅读了这篇文章并找到了关键信息:虽然PDB对于应用程序的运行不是必需的,但对于StackTrace
字符串中存在文件和行号则是必需的。我将PDB文件包含在可执行文件夹中,现在一切都很好。
PDB是“Program-Debug Data Base”的缩写。正如其名,它是一个存储库(例如数据库的持久存储),用于维护运行调试模式下程序所需的信息。它包含了一些重要的代码调试所需的信息,例如在何处放置断点以及您期望Visual Studio (VS)中的调试器中断的地方。
这就是为什么如果从调试目录中删除PDB文件,Visual Studio调试器无法命中断点的原因。Visual Studio调试器能够告诉您代码文件中的确切行号以及其堆栈跟踪,它只能借助PDB文件来实现。因此,PDB文件对于调试非常有帮助。
通常情况下,不建议在构建过程中排除PDB文件的生成。从生产发布的角度来看,您应该创建PDB文件,但不要在产品安装程序中将它们发送到客户站点。将所有生成的PDB文件保留在符号服务器上,以便在将来需要时可以使用/引用。
这在调试进程崩溃问题的情况下特别重要。在分析崩溃转储文件时,如果没有保留构建过程中创建的原始PDB文件,则Visual Studio将无法确定程序崩溃的确切代码行。
如果您仍然想禁用PDB文件的生成,请按以下步骤操作:
注意:此设置必须分别针对Debug 和Release构建配置执行。
PDB文件包含调试器使用的信息。它不是运行应用程序所必需的,也不需要包含在发布的版本中。
你可以在Visual Studio中禁用创建pdb文件。如果你正在从命令行或脚本构建,则省略/Debug
开关。