发布与调试文件夹vs 2013



我对编程比较陌生,已经开始使用VS 2013而不是C#Express 2010。我很好奇bin目录中的调试文件夹和构建文件夹之间有什么区别?

调试和发布是两种不同的配置。你可以在这里阅读详细信息。

调试模式未进行优化,而是以便于调试的方式进行编译的。您可以在调试模式下运行代码。然而,如果您已将应用程序配置为发布模式,则这是不可能的。

发布模式针对性能进行了优化,应在部署应用程序时使用。

顾名思义,您构建用于调试的Debug版本和用于最终发行版的Release版本。如果在Visual Studio中创建程序,Visual Studio会自动创建这些配置并设置适当的默认选项和其他设置。使用默认设置:程序的调试配置是使用完整的符号调试信息编译的,没有进行优化。优化使调试变得复杂,因为源代码和生成的指令之间的关系更加复杂。程序的Release配置不包含符号调试信息,并且已完全优化。调试信息可以在PDB文件中生成,具体取决于所使用的编译器选项。如果以后必须调试发布版本,创建PDB文件可能非常有用。

您在Visual Studio中使用构建配置来控制编译代码时要采取的步骤。默认情况下,您会得到两个,调试和发布,构建设置。

发件人http://msdn.microsoft.com/en-us/library/wx0123s5.aspx:

程序的调试配置是使用完整的符号调试信息编译的,没有进行优化。优化使调试变得复杂,因为源代码和生成的指令之间的关系更加复杂。

程序的Release配置不包含符号调试信息,并且已完全优化。调试信息可以在PDB文件中生成,具体取决于所使用的编译器选项。如果以后必须调试发布版本,创建PDB文件可能非常有用。

DebugRelease是用于构建项目的不同配置。

您通常使用Debug模式调试项目,使用Release模式为最终用户进行最终构建。

Debug模式不会优化它生成的二进制文件(因为优化会使调试非常复杂),而是生成额外的数据来帮助调试。

调试模式中,编译器为所有变量发出调试符号,并按原样编译代码。在发布模式

  1. 根本不会编译未使用的变量
  2. 如果某些循环变量被证明是不变量
  3. 不包括在#debug指令下编写的代码等

剩下的由JIT决定。Release模式可实现优化并生成较少(或不生成)的额外调试数据。

请参阅以下链接:

StackOverflow

MSDN

希望这能帮助你:)

For。NET程序(C#/VB)、调试构建和发布构建之间差别不大。您仍然可以部署exe/dll的未优化调试版本。优化并没有太大的区别。

对于C++程序,Debug构建依赖于VC运行时dll的调试版本,而这是不应该部署的。调试构建通常没有经过太多优化,大小较大,运行速度较慢。发布版本取决于可以部署的VC运行时dll的发布版本。发布版本通常经过优化,大小更小,运行速度更快。