C#发布版本仍然有.pdb文件。

15 浏览
0 Comments

C#发布版本仍然有.pdb文件。

我想部署用C#编写的应用程序的发布版本。

当我使用Release配置进行构建时,我仍然可以看到产生了.pdb文件,这意味着我的应用程序仍然可以进行调试。这也意味着我的代码中某些调试信息存在,会稍微减慢它的速度。

如果这是真的,我该如何完全禁止在二进制文件中产生任何调试信息?你也知道为什么会有发布版的.pdb文件吗?Release配置已经启用了Optimize code,并且只定义了TRACE常量,而没有定义DEBUG

谢谢你的帮助。

0
0 Comments

C# release版本仍然会生成.pdb文件的原因是在项目属性中,需要使用“高级构建设置”对话框来禁用.pdb文件的生成。在“构建”选项卡的下部点击“高级...”按钮后,将“输出 - 调试信息:”设置为“None”,即可在发布版本构建配置中不生成.pdb文件。另外,也可以使用MSBuild.exe YourProject.csproj /p:DebugSymbols=false /p:DebugType=None命令来禁用.pdb文件的生成。

0
0 Comments

在发布版本的C#中,仍然存在.pdb文件。这个问题的出现原因是为了在不同的机器上远程调试运行的代码时,可以使用本地机器上的.pdb文件来获取异常发生的行号。如果没有使用.pdb文件,堆栈跟踪中将不包含行号和文件名,这使得调试变得更加困难。

解决方法是不必将.pdb文件与发布部署一起发布,但可以保留这些文件以备后用。这样,当需要远程调试运行在不同机器上的代码时,可以使用本地机器上的.pdb文件来获取异常发生的行号。这样一来,即使不在同一台机器上进行调试,也可以通过.pdb文件来定位异常的位置。

这篇文章通过C#发布版本仍然存在.pdb文件这个问题,说明了.pdb文件的作用以及解决方法。这些.pdb文件可以用于远程调试运行在不同机器上的代码,通过.pdb文件可以获取异常发生的行号。不将.pdb文件与发布部署一起发布,可以防止泄漏代码的同时,仍然可以利用.pdb文件进行调试。

0
0 Comments

C#发布版本仍然有.pdb文件的原因是为了在调试时获取更多信息,而生成PDB文件并不会影响代码的性能。因此,默认情况下,即使在发布版本中也会生成PDB文件。生成PDB文件的唯一开销是占用一定的磁盘空间,除非你进行调试,否则不会有其他开销。因此,除非你正在调试或发布商业软件,否则不建议在发布版本中生成PDB文件。

对于是否有人进行了相关测试来确认PDB文件是否会降低性能,大家似乎都达成了共识,即PDB文件不会降低性能。

有人问PDB文件在逆向工程方面是否有用,这是因为他正在对发布版本进行混淆。然而,由于运行时并不读取PDB文件,因此除了占用一定的磁盘空间外,并没有其他开销。

虽然有人认为发布版本应该是不包含调试信息的,但大多数人认同生成PDB文件的好处,即在调试时能够获取更多信息。因此,除非你正在调试或发布商业软件,否则建议在发布版本中生成PDB文件。

0