我想部署用 C# 完成的应用程序的发布版本。
当我使用配置构建时Release
,我仍然可以看到.pdb
文件已生成,这意味着我的应用程序仍然可以调试。这也意味着我的代码中的某处存在一些调试信息,从而减慢了它的速度。
如果这是真的,我怎样才能完全抑制二进制文件中产生的任何调试信息?你也知道释放的原因.pdb
吗?配置Release
已Optimize code
检查,仅TRACE
定义常量,未定义DEBUG
.
谢谢你的帮助。
我想部署用 C# 完成的应用程序的发布版本。
当我使用配置构建时Release
,我仍然可以看到.pdb
文件已生成,这意味着我的应用程序仍然可以调试。这也意味着我的代码中的某处存在一些调试信息,从而减慢了它的速度。
如果这是真的,我怎样才能完全抑制二进制文件中产生的任何调试信息?你也知道释放的原因.pdb
吗?配置Release
已Optimize code
检查,仅TRACE
定义常量,未定义DEBUG
.
谢谢你的帮助。
如果要禁用 pdb 文件生成,则需要在单击选项卡下方的“按钮”"Advanced build settings"
后使用项目属性中可用的对话框。"Advanced..."
Build
设置Output - Debug info:
为None
发布构建配置,不会生成任何 pdb 文件。
默认情况下也为发布版本生成 PDB。这是一项功能,您不应禁用它。生成 PDB 意味着您可以在调试时获得更多信息。PDB 文件的存在不会以任何方式影响代码的性能。
您不必将 .PDB 与您的发布部署一起发布,但它们对保留很有用 - 例如,您可以使用机器上的 PDB 远程调试在不同机器上运行的代码,以获取异常所在的行号发生。
如果不使用 .PDB,行号和文件名不包含在堆栈跟踪中,因此调试它们变得更加困难。
您可以在 Build -> Advanced... -> Debug info: 下的项目属性中控制 pdb / 符号生成。选项包括:
有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/8cw0bt21%28VS.80%29.aspx。
我强烈建议您选择 pdb-only 选项,而不是none 选项,因为它仍然会为您提供一些符号信息而不影响程序集 - 您可能会发现这是您在发布版本中的当前设置。