Каково различие между Выпуском и Режимами отладки в Visual Studio? [дубликат]

Мы только что выпустили CShell полнофункциональную C # REPL IDE. Он поддерживает завершение кода, файлы сценариев, добавление ссылок и действительно расширяемый. Также мы планируем добавить поддержку NuGet в ближайшее время, что позволит очень быстро написать код и посмотреть, как он работает.

http://cshell.net/

CShell screenshot

Мы любим LINQPad, но у него нет REPL, код выполняется один раз, и вы не сможете ничего сделать с результатами, если не измените сценарий и снова не запустите весь сценарий. Это хорошо, но иногда, если вы хотите еще больше ощущения скрипки, чем оценивать ваш код в REPL, это действительно приятно и удобно.

113
задан 13 revs, 7 users 32% 17 October 2017 в 07:10
поделиться

3 ответа

Ну, это зависит от того, какой язык вы используете, но в целом это 2 отдельные конфигурации, каждая со своими настройками. По умолчанию Debug включает отладочную информацию в скомпилированные файлы (что позволяет упростить отладку), в то время как Release обычно включает оптимизацию.

Что касается условной компиляции, каждая из них определяет разные символы, которые можно проверить в вашей программе, но они являются языком -специфические макросы.

82
ответ дан 24 November 2019 в 02:42
поделиться

Основное отличие заключается в том, что при компиляции в режиме отладки также создаются файлы pdb, которые позволяют отладку (так что вы можете выполнять пошаговый код во время его выполнения). Однако это означает, что код не так оптимизирован.

20
ответ дан 24 November 2019 в 02:42
поделиться

Отладка и Выпуск - это просто ярлыки для различных конфигураций решения . Вы можете добавить других, если хотите. В проекте, над которым я когда-то работал, был проект под названием «Внутренняя отладка», который использовался для включения внутренних функций редактирования приложения. Вы можете увидеть это, если зайдете в Configuration Manager ... (находится в меню Сборка ). Дополнительную информацию о библиотеке MSDN можно найти в диалоговом окне диспетчера конфигураций .

Каждая конфигурация решения затем состоит из набора конфигураций проекта . Опять же, это просто ярлыки, на этот раз для набора настроек вашего проекта. Например, в наших проектах библиотеки C ++ есть конфигурации проектов, которые называются «Отладка», «Debug_Unicode», «Debug_MT» и т. Д.

Доступные настройки зависят от того, какой тип проекта вы создаете. Для проекта .NET это довольно небольшой набор: #define s и еще несколько вещей. Для проекта C ++ вы получаете гораздо больше возможностей для настройки.

В общем, вы будете использовать «Отладку», когда хотите, чтобы ваш проект был построен с выключенным оптимизатором, и когда вы хотите полностью информация об отладке / символах, включенная в вашу сборку (обычно в файле .PDB). Вы будете использовать «Release», когда хотите, чтобы оптимизатор был включен, и когда вы не хотите, чтобы включалась полная отладочная информация.

#define s и многое другое. Для проекта C ++ вы получаете гораздо больше возможностей для настройки.

В общем, вы будете использовать «Отладку», когда хотите, чтобы ваш проект был построен с выключенным оптимизатором, и когда вы хотите полностью информация об отладке / символах, включенная в вашу сборку (обычно в файле .PDB). Вы будете использовать «Release», когда хотите, чтобы оптимизатор был включен, и когда вы не хотите, чтобы включалась полная отладочная информация.

#define s и многое другое. Для проекта C ++ вы получаете гораздо больше возможностей для настройки.

В общем, вы будете использовать «Отладку», когда хотите, чтобы ваш проект был построен с выключенным оптимизатором, и когда вы хотите полностью информация об отладке / символах, включенная в вашу сборку (обычно в файле .PDB). Вы будете использовать «Release», когда хотите, чтобы оптимизатор был включен, и когда вы не хотите, чтобы включалась полная отладочная информация.

112
ответ дан 24 November 2019 в 02:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: