Visual Studio中的Release和Debug模式有什么区别?

时间:2009-06-01 06:30:31

标签: visual-studio visual-studio-2005 conditional-compilation

  

可能重复:
  Debug vs. release in .NET
  Debug/Release difference   

构建项目时Visual Studio中的Release和Debug模式有什么区别?

3 个答案:

答案 0 :(得分:105)

调试发布只是不同解决方案配置的标签。如果需要,您可以添加其他人。我曾经做过的一个项目有一个名为“Debug Internal”的项目,它用于打开应用程序的内部编辑功能。如果您转到Configuration Manager...(它位于Build菜单上),您可以看到这一点。您可以在Configuration Manager Dialog Box下找到有关MSDN Library的更多信息。

每个解决方案配置都包含一堆项目配置。同样,这些只是标签,这次是项目设置的集合。例如,我们的C ++库项目具有名为“Debug”,“Debug_Unicode”,“Debug_MT”等的项目配置。

可用设置取决于您正在构建的项目类型。对于.NET项目,它是一个相当小的集合:#define和其他一些东西。对于C ++项目,您需要调整更多内容。

一般情况下,如果希望在关闭优化器的情况下构建项目,并且希望构建中包含完整的调试/符号信息(通常在.PDB文件中),则可以使用“Debug” )。如果您希望启用优化器,并且希望包含完整的调试信息,您将使用“发布”。

答案 1 :(得分:78)

嗯,这取决于您使用的语言,但通常它们是2个单独的配置,每个配置都有自己的设置。默认情况下,Debug包含已编译文件中的调试信息(允许轻松调试),而Release通常已启用优化。

就条件编译而言,它们各自定义了可在程序中检查的不同符号,但它们是特定于语言的宏。

答案 2 :(得分:19)

主要区别在于在调试模式下编译时,还会创建允许调试的pdb文件(因此您可以在运行时逐步执行代码)。但这意味着代码没有得到优化。