Visual Studio中的发布和debugging模式有什么区别?

可能重复:
在.NET中debugging与释放
debugging/发布差异

在构build项目时,Visual Studio中的发布和debugging模式有什么区别?

那么,这取决于你使用的是什么语言,但总的来说,它们是2个独立的configuration,每个configuration都有自己的设置。 默认情况下,Debug包含编译文件中的debugging信息(允许轻松debugging),而Release通常已启用优化。

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

debugging发布只是不同解决schemeconfiguration的标签。 你可以添加其他人,如果你想。 我曾经工作过的一个项目有一个叫做“内部debugging”,用来打开应用程序的内部编辑function。 你可以看到这个,如果你去Configuration Manager... (它在Build菜单上)。 您可以在configurationpipe理器对话框下的MSDN Library中find更多信息。

然后,每个解决schemeconfiguration由一堆项目configuration组成 。 再次,这些只是标签,这次为您的项目设置的集合。 例如,我们的C ++库项目具有名为“Debug”,“Debug_Unicode”,“Debug_MT”等的项目configuration。

可用的设置取决于您正在构build的项目types。 对于一个.NET项目,这是一个相当小的集合: #define s和其他一些东西。 对于一个C ++项目,你会得到更多的东西来调整。

但是,一般情况下,如果希望在优化程序closures的情况下构build项目,并且需要包含在构build中的完整debugging/符号信息(通常位于.PDB文件中),则将使用“debugging”。 当你想要打开优化器,并且不需要包含完整的debugging信息时,你将使用“Release”。

主要区别是在debugging模式下编译时,也会创build允许debugging的pdb文件(因此您可以在运行时单步执行代码)。 但是这意味着代码没有被优化。