在 C# 项目的 Visual Studio 中,如果您转到项目属性 > 构建 > 高级 > 调试信息,您有三个选项:none
、full
或 pdb-only
.
哪种设置最适合发布版本?
那么,full
和 pdb-only
有什么区别?
如果我使用 full
会有性能影响吗?如果我使用 pdb-only
会更难调试生产问题吗?
最佳答案
我会使用 pdb-only
构建。您将无法将调试器附加到已发布的产品,但如果您遇到故障转储,您可以使用 Visual Studio 或 WinDBG检查崩溃时的堆栈跟踪和内存转储。
如果您使用 full
而不是 pdb-only
,您将获得相同的好处,除了可执行文件可以直接附加到调试器。您需要根据您的产品和客户确定这是否合理。
确保将 PDB 文件保存在某个地方,以便在收到崩溃报告时可以引用它们。如果您可以设置 symbol server存储那些调试符号,这样更好。
如果您选择使用 none
进行构建,那么当现场发生崩溃时,您将无法追索。您将无法对事故进行任何形式的事后检查,这可能会严重影响您追查问题的能力。
关于性能的说明:
两者John Robbins和 Eric Lippert写过关于 /debug
标志的博文,他们都表示此设置对性能的影响零。有一个单独的 /optimize
标志,指示编译器是否应该执行优化。
关于c# - 我应该使用调试信息编译发布版本 "full"或 "pdb-only"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7713514/