144

可能重复:
.NET 中的调试与发布
调试/发布差异

构建项目时 Visual Studio 中的发布模式和调试模式有什么区别?

4

3 回答 3

136

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

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

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

不过,一般来说,当您希望在关闭优化器的情况下构建项目时,以及希望在构建中包含完整的调试/符号信息(通常在 .PDB 文件中)时,您将使用“调试”。当您想要打开优化器并且不想包含完整的调试信息时,您将使用“Release

于 2009-06-02T09:33:10.303 回答
107

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

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

于 2009-06-01T06:36:01.283 回答
20

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

于 2009-06-01T06:35:18.617 回答