【发布时间】:2013-12-20 04:31:29
【问题描述】:
我对编程比较陌生,已经开始使用 VS 2013 而不是 C# Express 2010。我很好奇 bin 目录中的 debug 和 build 文件夹有什么区别?
【问题讨论】:
-
感谢朋友的澄清。
标签: c# visual-studio-2013
我对编程比较陌生,已经开始使用 VS 2013 而不是 C# Express 2010。我很好奇 bin 目录中的 debug 和 build 文件夹有什么区别?
【问题讨论】:
标签: c# visual-studio-2013
调试和发布是两种不同的配置。您可以阅读详细信息here。
调试模式 没有经过优化,并且以这样一种方式编译,以便可以轻松调试。您可以在调试模式下运行您的代码。然而,如果您已将应用程序配置为发布模式,则这是不可能的。
发布模式针对性能进行了优化,应在您部署应用程序时使用。
顾名思义,您为调试构建 Debug 版本,为最终发行版构建 Release 版本。 如果您在 Visual Studio 中创建程序,Visual Studio 会自动创建这些配置并设置适当的默认选项和其他设置。使用默认设置: 程序的调试配置是使用完整的符号调试信息编译的,没有优化。优化使调试复杂化,因为源代码和生成的指令之间的关系更加复杂。 您的程序的 Release 配置不包含符号调试信息,并且已完全优化。根据使用的编译器选项,可以在 PDB 文件中生成调试信息。如果您以后必须调试发布版本,创建 PDB 文件会非常有用。
【讨论】:
您使用 Visual Studio 中的构建配置来控制编译代码时要执行的步骤。默认情况下,您会获得两个,调试和发布,构建设置。
来自http://msdn.microsoft.com/en-us/library/wx0123s5.aspx:
程序的调试配置是使用完整的符号调试信息编译的,没有优化。优化使调试复杂化,因为源代码和生成的指令之间的关系更复杂。
您的程序的发布配置不包含符号调试信息,并且经过全面优化。根据使用的编译器选项,可以在 PDB 文件中生成调试信息。如果您以后必须调试发布版本,创建 PDB 文件会非常有用。
【讨论】:
Debug 和 Release 是构建项目的不同配置。
您通常使用Debug 模式来调试您的项目,而Release 模式则用于最终用户的最终构建。
Debug 模式不会优化它生成的二进制文件(因为优化会使调试变得非常复杂),并且会生成额外的数据来帮助调试。
在调试模式下,编译器会为所有变量发出调试符号并按原样编译代码。 发布模式包括一些优化:
其余的取决于 JIT。
Release 模式支持优化并生成更少(或不生成)额外的调试数据。
请查看以下链接:
希望对你有帮助:)
【讨论】:
对于 .NET 程序 (C#/VB),debug build 和 release build 差别不大。您仍然可以部署未优化的 exe/dll 调试版本。优化没有太大区别。
对于 C++ 程序,调试版本取决于 VC 运行时 dll 的调试版本,它不应该被部署。 Debug 构建通常没有太多优化,体积更大,运行更慢。 发布构建取决于可以部署的 VC 运行时 dll 的发布版本。 发布版本通常经过优化,体积更小,运行速度更快。
【讨论】: