Возможный дубликат:
Отладка vs. release в .NET
Отладка/разность выпусков
В чем разница между режимами Release и Debug в Visual Studio при построении проекта?
Возможный дубликат:
Отладка vs. release в .NET
Отладка/разность выпусков
В чем разница между режимами Release и Debug в Visual Studio при построении проекта?
Ну, это зависит от того, какой язык вы используете, но в целом это две отдельные конфигурации, каждая из которых имеет свои собственные настройки. По умолчанию Debug включает в себя отладочную информацию в скомпилированных файлах (что позволяет легко отлаживать), в то время как Release обычно имеет оптимизацию.
Что касается условной компиляции, каждый из них определяет разные символы, которые могут быть проверены в вашей программе, но они являются языковыми макросами.
Отладка и Release - это просто метки для разных конфигураций решений . Вы можете добавить других, если хотите. Проект, который я когда-то работал, назывался "Debug Internal", который использовался для включения внутренних функций редактирования приложения. Вы можете увидеть это, если вы перейдете к Configuration Manager...
(он находится в меню Build
). Дополнительную информацию о библиотеке MSDN можно найти в Диалоговое окно Configuration Manager.
Каждая конфигурация решения состоит из группы конфигураций проекта. Опять же, это только ярлыки, на этот раз для набора настроек для вашего проекта. Например, наши проекты библиотеки С++ имеют конфигурации проектов, называемые "Debug", "Debug_Unicode", "Debug_MT" и т.д.
Доступные настройки зависят от того, какой тип проекта вы строите. Для .NET-проекта это довольно маленький набор: #define
и несколько других вещей. Для проекта С++ вы получаете гораздо больше возможностей для настройки.
В общем, вы будете использовать "Debug", когда вы хотите, чтобы ваш проект был построен при выключенном оптимизаторе, и когда вы хотите получить полную информацию об отладке/символе, включенную в вашу сборку (в файле .PDB, обычно). Вы будете использовать "Release", когда вы хотите включить оптимизатор, и когда вы не хотите включать полную отладочную информацию.
Основное отличие заключается в том, что при компиляции в режиме отладки создаются файлы pdb, которые позволяют отлаживать (чтобы вы могли выполнить код при его запуске). Это, однако, означает, что код не оптимизирован так сильно.