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

标签 .net vb.net debugging pdb-files

我有一个 VB.net 应用程序。目前,该应用程序的发布版本是在没有 PDB 文件的情况下生成的。这使我的错误日志缺乏有用的详细信息,例如行号。 我正在考虑将 PDB 文件包含在未来的版本中,但我想知道这样做的优点和缺点(性能方面、大小方面、代码安全方面)

最佳答案

我知道我会因此而挨打,但是...

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

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

因此,如果您遇到类似情况,我建议您忘记官方立场(在本例中),继续发布 pdb 文件,但有一个重要警告。

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

关于.net - 在发布应用程序中包含 PDB 文件的优点和缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2825813/

相关文章:

c# - 在 SqlDbType 枚举中缺少地理数据类型背后是否有逻辑推理

c# - 如何在一个 .NET 解决方案中跨项目进行通信?

windows - 启用/禁用来自vb.net的麦克风播放?

asp.net - MSBuild _CopyWebApplication 不从 vbproj 复制 <link>

perl - 如何在普通程序代码中使用 perl 调试器漂亮地打印散列?

debugging - 添加 Accordion 时,Mootools 'Uncaught TypeError: Property ' 对象 #<Object> 的容器不是函数'错误

c# - 如何更改没有 ID 的类 css 的属性?

c# - 为什么我在 IIS CGI 程序中遇到程序集绑定(bind)失败

javascript - 日期验证 - 仅输入当月内的日期

java - 为什么我的对象被IntelliJ IDEA的调试器无声无息地改变了?