你是否必须在发布时编译.pdb文件?

你是否必须在发布时编译.pdb文件?

为什么它甚至编译一个.pdb,当你做发布生成?

不,你不需要部署它们。

至于为什么他们甚至build立在释放。 一个PDB文件真的有几个用途,但主要的(至less对我来说)是

  1. debugging
  2. 剖析

这两个任务在发布二进制文件上都是有效的,这就是为什么发布版本包含一个PDB。 实际上,当debuggingWatson转储时,它对于发布版本来说是100%的时间。 没有PDB,我将不得不求助于通过disassembly 🙁

您不必与您的二进制文件一起部署和分发PDB文件。

但是,我build议您保留它们(并最终将其编入索引),以便能够分析客户端,QA和支持人员向您发送的任何转储文件。 这样,你将能够有易于理解的堆栈跟踪和符号信息。

如果需要,也可以在编译选项中closuresPDB文件生成。

PDB文件包含有关函数名称的信息。 你需要它能够得到一个堆栈跟踪。 它也可以包含有关将其映射到源的信息。 有时你可能想要发布你的发布版本,并且仍然需要分析发生在客户端的崩溃。 为此,需要PDB。 在编译发布时,PDB在理论上应该比编译debugging时less得多的信息。

PDB文件包含debugging符号, 即使在发布模式下也可以debugging二进制文件。 你不必(也可能不应该部署它们),因为它们可能被用来逆向工程你的应用程序。 尽pipe如此,请将它们保存在某个地方,因为它们在您想要debugging崩溃转储时非常方便。

不。 你不需要分发它们。 这将有助于debugging(或者我应该说这将使debugging成为理智的人)。

您也可以closures或调整在Visual Studio中生成的符号的“级别” – 只需进入项目属性/“构build”选项卡/“高级” – 调整“debugging信息”字段。

由于这个线程中的大多数人都说:不,你不必运送PDB文件。 但是如果你打算把代码发布到野外,你真的应该这么做。

这实际上是能够支持你的应用程序。 如果没有PDB,当应用程序崩溃时,所有用户将能够告诉你应用程序崩溃的原始内存地址; 但与PDB文件,你得到一个错误,你可以实际上做一些事情。

不,你不运送.pdb文件。 生成它们是因为有时能够debugging发布版本是有帮助的。

像AVICode的InterceptStudio这样的工具使用pdb文件从工具中查看特定exception/堆栈跟踪/本地的来源,而不必打开源代码并转到特定的行。

你不需要它们运行。

即使构build是在发布configuration上,也可以使用pdb文件进行debugging。

不,您不必部署.pdb文件。

从MSDN引用,“用/ debug(Visual Basic / C#)生成时创buildPDB文件”,因此在编译发布时不应该创builddebugging数据库。