在发布应用程序中包含PDB文件的优点和缺点

zeo*_*ash 10 .net vb.net debugging pdb-files

我有一个VB.net应用程序.目前,应用程序的发布版本是在没有PDB文件的情况下生成的.这给了我错误日志缺少有用的细节,如行号.我正在考虑将PDB文件包含在未来版本中,但我想知道它的优点和缺点是什么(性能明智,尺寸明智,代码安全性明智)

Dav*_*vid 13

我知道我会为此而受到打击但是......

我同意Dave Markle的意见,但我想补充说,发布PDB文件的一个优点是,正如你所说,非常适合调试.

也就是说,我不销售软件,我写的代码全部供公司内部使用.在这种情况下,我没有看到将调试代码与PDB文件一起投入生产的问题.我从来没有见过性能损失,而且说实话,如果遇到未处理的异常,我们的用户很少会给我们正确的信息.当然,我们会尝试正确处理异常,但正如您所知,错误将会发生.我们的策略是为所有项目添加一个全局异常处理程序,并将这些事件记录到数据库中.这些错误包含行号,因为我们确实包含了调试文件,因此,我们能够快速识别错误代码并对其做出反应,修复它并获得更多无错误的应用程序.对我(以及我们的用户)来说,这是一个巨大的好处,我不想没有.

因此,如果你处于类似的情况,我会说忘记官方立场(在这种情况下)并继续发布pdb文件,并提出一个重要的警告.

要确保使用PDB文件部署的任何Web应用程序都要确保正确处理所有异常,并且不会在标准的Asp.NET错误页面中无意中暴露代码行.


Dav*_*kle 11

当您为应用程序部署调试符号时,很容易让某些人出现并对您的工作进行反向工程,而某些人发现这些工作是不受欢迎的.同样,您必须部署更多文件,并且可部署项目变得更大.PDB文件本身不会导致应用程序变慢,因为运送PDB并不总是排除进行优化(您只需要小心 - 默认的"调试"项目设置往往不会优化您的输出生成PDB).