【问题标题】:Release vs. Debug folders VS 2013 [duplicate]发布与调试文件夹VS 2013 [重复]
【发布时间】:2013-12-20 04:31:29
【问题描述】:

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

【问题讨论】:

  • 感谢朋友的澄清。

标签: c# visual-studio-2013


【解决方案1】:

调试和发布是两种不同的配置。您可以阅读详细信息here

调试模式 没有经过优化,并且以这样一种方式编译,以便可以轻松调试。您可以在调试模式下运行您的代码。然而,如果您已将应用程序配置为发布模式,则这是不可能的。

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

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

【讨论】:

  • 这仅适用于 bin 文件夹中的文件对吗?构建它对VS中的代码没有任何影响对吗?
  • 是的,这是正确的。但是编译的文件是不同的。当您在发布模式下构建时,您将看到发布文件夹中更新的文件。在其他情况下,调试文件夹将被更新。
【解决方案2】:

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

来自http://msdn.microsoft.com/en-us/library/wx0123s5.aspx

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

您的程序的发布配置不包含符号调试信息,并且经过全面优化。根据使用的编译器选项,可以在 PDB 文件中生成调试信息。如果您以后必须调试发布版本,创建 PDB 文件会非常有用。

【讨论】:

    【解决方案3】:

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

    您通常使用Debug 模式来调试您的项目,而Release 模式则用于最终用户的最终构建。

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

    调试模式下,编译器会为所有变量发出调试符号并按原样编译代码。 发布模式包括一些优化:

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

    其余的取决于 JIT。 Release 模式支持优化并生成更少(或不生成)额外的调试数据。

    请查看以下链接:

    StackOverflow

    MSDN

    希望对你有帮助:)

    【讨论】:

      【解决方案4】:

      对于 .NET 程序 (C#/VB),debug build 和 release build 差别不大。您仍然可以部署未优化的 exe/dll 调试版本。优化没有太大区别。

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

      【讨论】:

        猜你喜欢
        • 2017-10-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-13
        • 1970-01-01
        • 2020-03-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多