您是否必须部署.pdb文件并在发布时进行编译?

48 .net deployment release-management

您是否必须部署.pdb文件并在发布时进行编译?

为什么在进行发布构建时甚至会编译.pdb?

Jar*_*Par 36

不,你不需要部署它们.

至于为什么他们甚至建立在释放.PDB文件确实有一些用途,但主要用途(至少对我而言)是

  1. 调试
  2. 剖析

这两个任务都在发布二进制文件上有效完成,这就是发布版本包含PDB的原因.实际上,在调试Watson转储时,100%的时间是针对发布版本.没有PDB我将不得不求助于通过dissasembly :(

  • @Dan,分析是性能分析.它只是无用,除非它可以将程序集映射回你实际编译的代码.这是PDB的用武之地. (6认同)
  • @Dan,分析的一部分是能够将程序集中的随机位置映射回用户代码.否则你不会知道什么代码只是为什么组装.PDB非常适合映射汇编 - >源代码(这是调试器需要它们的原因之一) (2认同)

erb*_*rbi 10

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

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


DCN*_*YAM 6

如果需要,还可以在编译选项中关闭PDB文件生成.


Ass*_*vie 5

PDB 文件包含调试符号,即使在发布模式下也允许您调试二进制文件。您不必(并且可能不应该部署它们),因为它们可能用于对您的应用程序进行逆向工程。不过,请务必将它们存档在某个地方,因为当您想要调试故障转储时它们会非常方便。