什么是PDB文件?

什么是PDB文件,当我重build我的解决scheme时,如何从release文件夹中排除它?

PDB文件包含供debugging器使用的信息。 无论如何,Release版本中的信息less于Debug版本中的信息。 但是,如果您不想生成它,请转到项目的“生成”属性,select“发布”configuration,单击“高级…”,然后在“debugging信息”下select“无”。

我最初问自己“ 我需要一个PDB文件部署到我的客户的机器? ”的问题,并阅读这篇文章后,决定排除文件。

一切正常,直到今天,当我试图找出为什么包含一个Exception.StackTrace消息框是缺less文件和行号信息 – 解决exception的必要。 我重新阅读这篇文章,发现了关键信息块:虽然PDB不是运行应用程序所必需的,但是文件和行号必须存在于StackTracestring中。 我在可执行文件夹中包含了PDB文件,现在一切正常。

PDBP rogram D ata B ase的缩写。 顾名思义,它是一个存储库(作为数据库的持久性存储)来维护在debugging模式下运行程序所需的信息。 它包含debugging代码(在Visual Studio中)时所需的许多重要相关信息,例如,您在哪些点插入了断点,而您希望debugging程序在Visual Studio中中断。

这就是为什么如果从debugging文件夹中删除* .pdb文件,Visual Studio无法击中断点的原因。 借助于* .pdb文件,Visual Studiodebugging器还能够告诉您堆栈跟踪中发生exception的代码文件的精确行号。 所以在debugging程序的时候,有效的pdb文件对开发者来说真的是一个福音。

一般不build议排除* .pdb文件的生成。 从生产发布的angular度来看,您应该尽可能创buildpdb文件,但不要将它们发送到产品安装程序中的客户站点。 将所有生成的pdb文件保存到符号服务器中,如果需要的话,将来可以使用/引用它。 特别适用于debugging过程崩溃等问题的情况。 当您开始分析崩溃转储文件,并且如果您在生成过程中创build的原始* .pdb文件不保留,然后Visual Studio将无法确定导致崩溃的确切代码行

如果还是真的想禁用任何版本的* .pdb文件的生成,那么去项目的属性 – >生成选项卡 ​​- >点击高级button – >select没有“debugging信息”字段 – >按下所示的OK在下面的快照中。

无C#项目的调试信息设置

注意 :对于“Debug”和“Release”构buildconfiguration,必须单独完成此设置。

PDB文件包含debugging器使用的信息。 不需要运行您的应用程序,也不需要将其包含在发布的版本中。

您可以禁用在Visual Studio中创build的pdb文件。 如果从命令行或脚本构build,则省略/Debug开关。