您是否必须在发布时使用编译来部署 .pdb 文件?
无论如何,当您进行发布构建时,为什么它甚至会编译 .pdb?
不,您不需要部署它们。
至于为什么它们甚至内置于发布中。PDB 文件确实有几个用途,但主要用途(至少对我而言)是
这两项任务都在发布二进制文件上有效完成,这就是发布版本包含 PDB 的原因。事实上,当调试 Watson 转储时,它 100% 的时间都是针对发布版本的。如果没有 PDB,我将不得不通过拆机查看:(
您不必随二进制文件一起部署和分发 PDB 文件。
但是,我建议您保留它们(并最终索引它们),以便能够分析客户、QA 和支持人员发送给您的任何转储文件。这样,您将能够获得可理解的堆栈跟踪和符号信息。
如果需要,还可以在编译选项中关闭 PDB 文件生成。
PDB 文件包含有关函数名称的信息。您需要它才能获得堆栈跟踪。它还可以包含有关将其映射到源的信息。有时您可能想要发布您的发布版本,但仍需要分析客户端发生的崩溃。为此,需要 PDB。理论上,为发布而编译时的 PDB 应该比为调试而编译时具有更少的信息。
PDB 文件包含调试符号,即使在发布模式下也允许您调试二进制文件。您不必(并且可能不应该部署它们),因为它们可能被用来对您的应用程序进行逆向工程。不过,请务必将它们存档在某个地方,因为当您想要调试故障转储时,它们会非常方便。
没有。您不需要分发它们。它有助于调试(或者我应该说它可以让理智的人进行调试)。
您还可以关闭或调整 Visual Studio 中生成的符号的“级别”——只需转到项目属性/“构建”选项卡/“高级”——并对“调试信息”字段进行调整。
正如该线程上的大多数人所说:不,您不必发送 PDB 文件;但如果你打算将代码发布到野外,你真的应该这样做。
这实际上是关于能够支持您的应用程序。如果没有 PDB,当您的应用程序崩溃时,您的用户只能告诉您应用程序崩溃的原始内存地址;但是使用 PDB 文件,您会收到一个错误,您实际上可以做一些事情。
不,您不发送 .pdb 文件。生成它们是因为有时能够调试发布版本会很有帮助。
一些工具,如 AVICode 的 InterceptStudio 使用 pdb 文件从工具中查看特定异常/堆栈跟踪/本地的源,而不必打开源并转到特定行。
您不需要它们运行。
即使构建是在发布配置上,pdb 文件也可用于调试。
不,您不必部署 .pdb 文件。
引用MSDN的话说,“使用 /debug (Visual Basic/C#) 构建时会创建 PDB 文件。”,因此在编译发布时不应创建调试数据库。