.net-您是否必须在发布时通过部署来部署.pdb文件?

您是否必须在发布时通过部署来部署.pdb文件?

无论如何,为什么在进行发行版本构建时,它甚至还会编译.pdb?

11个解决方案
36 votes

不,您不需要部署它们。

至于为什么它们甚至是内置版本。 PDB文件确实有两个用途,但主要用途(至少对我而言)是

  1. 调试
  2. 剖析

这两项任务均有效地在发行版二进制文件上完成,这就是发行版包含PDB的原因。 实际上,在调试Watson转储时,它是100%的时间针对发布版本。 如果没有PDB,我将不得不散漫地浏览:(

JaredPar answered 2020-02-21T16:05:28Z
10 votes

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

但是,我建议您保留它们(并最终对其进行索引),以便能够分析客户端,质量检查和支持人员发送给您的所有转储文件。 这样,您将能够获得可理解的堆栈跟踪和符号信息。

erbi answered 2020-02-21T16:05:53Z
6 votes

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

DCNYAM answered 2020-02-21T16:06:13Z
4 votes

PDB文件包含有关函数名称的信息。 您需要它才能获取堆栈跟踪。 它还可以包含有关将其映射到源的信息。 有时您可能想发布发行版本,但仍然需要分析客户端发生的崩溃。 为此,需要PDB。 从理论上讲,发布时的PDB应该比调试时的信息少。

Yuliy answered 2020-02-21T16:06:34Z
3 votes

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

Assaf Lavie answered 2020-02-21T16:06:55Z
2 votes

不。 您不需要分发它们。 这将有助于调试(或者我应该说这将使精明的人可以进行调试)。

您还可以关闭或调整Visual Studio中生成的符号的“级别”,只需转到“项目属性” /“构建”选项卡/“高级”,然后对“调试信息”字段进行调整。

Dan Esparza answered 2020-02-21T16:07:20Z
1 votes

正如该线程上的大多数人所说的:不,您不必发送PDB文件。 但实际上,如果您打算将代码发布到野外,则应该这样做。

这实际上是关于能够支持您的应用程序。 没有PDB,当应用程序崩溃时,所有用户都可以告诉您应用程序崩溃的原始内存地址。 但是使用PDB文件时,您会得到一个错误,您实际上可以采取一些措施。

PaulJ answered 2020-02-21T16:07:45Z
0 votes

不,您不运送.pdb文件。 之所以生成它们,是因为有时调试发布版本会有所帮助。

zildjohn01 answered 2020-02-21T16:08:05Z
0 votes

诸如AVICode的InterceptStudio之类的某些工具使用pdb文件从工具内部查看特定异常/堆栈跟踪/本地的源,而不必打开源并转到特定行。

TheMissingLINQ answered 2020-02-21T16:08:25Z
0 votes

您不需要它们运行。

即使构建基于发布配置,也可以使用pdb文件进行调试。

Chen Kinnrot answered 2020-02-21T16:08:50Z
-4 votes

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

从MSDN引用,“使用/ debug(Visual Basic / C#)构建时会创建一个PDB文件。”,因此在为发布而编译时,不应创建调试数据库。

Alex Fort answered 2020-02-21T16:09:15Z
translate from https://stackoverflow.com:/questions/608002/do-you-have-to-deploy-the-pdb-file-with-compiling-under-release