什么是PDB文件?如何在重建解决方案时将其从发布文件夹中排除?
答案 0 :(得分:208)
PDB文件包含要使用的调试器的信息。无论如何,Release版本中的信息少于Debug版本中的信息。但是如果你想要它根本不生成,请转到项目的Build属性,选择Release配置,单击“Advanced ...”,然后在“Debug Info”下选择“None”。
答案 1 :(得分:102)
我原先问自己一个问题“我是否需要将PDB文件部署到我客户的机器上?”,在阅读完这篇文章后,决定排除该文件。
一切正常,直到今天,当我试图弄清楚为什么包含Exception.StackTrace
的消息框缺少文件和行号信息时 - 需要对异常进行故障排除。我重新阅读了这篇文章并找到了关键的信息:虽然PDB不是运行应用程序所必需的,但文件和行号必须存在于StackTrace
字符串中。我将PDB文件包含在可执行文件夹中,现在一切正常。
答案 2 :(得分:72)
PDB 是 P rogram D ata B ase的缩写。顾名思义,它是一个存储库(持久性存储,如数据库),用于维护在调试模式下运行程序所需的信息。它包含调试代码(在Visual Studio中)时所需的许多重要相关信息,例如,在什么点插入了断点,您希望调试器在Visual Studio中中断。
这就是为什么如果从调试文件夹中删除*.pdb
文件,Visual Studio很多次都无法达到断点的原因。 Visual Studio调试器还能够在*.pdb
文件的帮助下告诉您堆栈跟踪中发生异常的代码文件的精确行号。因此,有效的pdb文件在调试程序时对开发人员来说真的很有用。
通常不建议排除*.pdb
文件的生成。从生产发布的角度来看,您应该做的是创建pdb文件,但不要将它们发送到产品安装程序中的客户站点。将所有生成的PDB文件保留在符号服务器上,以备将来可以使用/引用它。 特别适用于调试进程崩溃等问题的情况。当您开始分析故障转储文件时,如果未保留在构建过程中创建的原始*.pdb
文件,则Visual Studio将无法确定导致崩溃的确切代码行。
如果您仍想为任何版本完全禁用*.pdb
个文件的生成,请转到项目的属性 - >构建标签 - >点击高级按钮 - >从“调试信息”下拉框中选择none
- >按确定,如下面的快照所示。
注意:此设置必须单独为“调试”和“发布”构建配置完成。
答案 3 :(得分:13)
PDB file包含调试器使用的信息。它不需要运行您的应用程序,也不需要包含在您发布的版本中。
您可以禁用在Visual Studio中创建的pdb文件。如果要从命令行或脚本构建,则省略/Debug
开关。
答案 4 :(得分:0)