2013-12-20 74 views
0

我相对较新的编程,并已开始使用VS 2013,而不是C#Express 2010.我很好奇bin目录中的调试和生成文件夹有什么区别?发布VS调试文件夹VS 2013

+0

感谢朋友,我很欣赏澄清。 –

回答

2

调试和发布是2种不同的配置。你cna阅读详细信息here

调试模式没有进行优化,编译的方式使调试变得简单。您可以在调试模式下运行代码。然而,如果您已将应用程序配置为发布模式,则不可能。

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

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

+0

这仅适用于bin文件夹中的文件是否正确?构建它对VS中的代码没有任何影响? –

+0

是的,这是正确的。但编译的文件是不同的。当您在发布模式下构建时,您会看到在发布文件夹中更新的文件。而在其他情况下,debug文件夹将被更新。 – Ehsan

1

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

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

Debug模式不会优化它生成的二进制文件(因为优化可能会使调试复杂化很多),并生成其他数据以帮助调试。

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

  1. 未使用的变量没有得到根本
  2. 一些循环变量是由编译器取出循环的编译,如果它们被证明是 不变
  3. 代码写在#debug指令不包括等

其余的是由JIT。 Release模式启用优化并生成更少(或不)额外的调试数据。

请参阅以下链接:

StackOverflow

MSDN

希望这有助于你:)

1

您使用建立在Visual Studio中控制措施,配置当你编译你的代码时会被采用。你得到两个,调试和发布,默认构建设置。

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

程序的调试配置编译全符号调试信息和无优化。优化使调试变得复杂,因为源代码和生成的指令之间的关系更复杂。

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

0

对于.NET程序(C#/ VB),调试构建和发布构建几乎没有区别。您仍然可以部署未优化的exe/dll调试版本。优化并没有太大的区别。

对于C++程序,Debug build取决于VC运行时DLL的调试版本,它不应该被部署。调试版本通常没有太多优化,尺寸更大,运行速度更慢。 发布版本取决于可以部署的VC运行时版本的DLL版本。 发布版本通常进行优化,尺寸更小,运行速度更快。