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