Руководство. Отладка консольного приложения .NET с помощью Visual Studio
В этом руководстве представлены средства отладки, доступные в Visual Studio.
Внимание
Все сочетания клавиш основаны на значениях по умолчанию из Visual Studio. Сочетания клавиш могут отличаться. Дополнительные сведения см. в разделе "Сочетания клавиш" в Visual Studio.
Предварительные условия
- В этом руководстве используется консольное приложение, созданное в руководстве Создание консольного приложения .NET в Visual Studio.
Использование конфигурации отладочной сборки
В Visual Studio используются две встроенные конфигурации сборки — Отладка и Выпуск. Вы воспользуетесь отладочной конфигурацией сборки для отладки и конфигурацией для выпуска для окончательного выпуска программы.
В отладочной конфигурации программы компилируется с полной символической отладочной информацией и без оптимизации. Оптимизация усложняет отладку, поскольку усложняется связь между исходным кодом и сгенерированными инструкциями. Конфигурация для выпуска полностью оптимизирована и не содержит символической отладочной информации.
По умолчанию Visual Studio использует отладочную конфигурацию сборки, поэтому ее не нужно изменять перед отладкой.
Запустите среду Visual Studio.
Откройте проект, созданный по инструкциям из статьи Создание консольного приложения .NET в Visual Studio.
Используемая конфигурация сборки отображается на панели инструментов. На следующем изображении панели инструментов показано, что служба Visual Studio настроена для компиляции отладочной версии приложения:
Установка точки останова
Точка останова приостанавливает выполнение приложения на инструкции, предшествующей той строке, в которой установлена точка останова.
Установите точку останова в строке, где отображается имя, дата и время, щелкнув в левом поле окна изменения кода в этой строке. Левое поле находится слева от номеров строк. Кроме того, установить точку останова можно, поместив курсор в строку кода и нажав клавишу F9 или выбрав Отладка>Переключить точку останова в строке меню.
Как видно на следующем рисунке, строку с точкой останова Visual Studio обозначает подсветкой текста и красной точкой в левом поле.
Нажмите клавишу F5, чтобы запустить программу в режиме отладки. Еще один способ запуска отладки — выбрать в меню параметры Отладка>Начать отладку.
Когда программа запросит имя, введите любую строку в окне консоли и нажмите клавишу ВВОД.
Выполнение программы остановится, когда будет достигнута точка останова, то есть перед выполнением метода
Console.WriteLine
. В окне Локальные отображаются значения переменных, которые определены в текущем выполняемом методе.
Использование окна "Интерпретация"
Окно Интерпретация позволяет взаимодействовать с приложением, которое вы отлаживаете. Вы можете интерактивно изменить значения переменных и посмотреть, как это повлияет на работу программы.
Если окно Интерпретация не отображается, откройте его, выбрав Отладка>Окна>Интерпретация.
Введите
name = "Gracie"
в окне Интерпретация и нажмите клавишу ВВОД.Введите
currentDate = DateTime.Parse("2019-11-16T17:25:00Z").ToUniversalTime()
в окне Интерпретация и нажмите клавишу ВВОД.В окне Интерпретация отображается значение переменной строки и свойства значения DateTime. Кроме того, значения переменных обновляются в окне Локальные.
Нажмите клавишу F5, чтобы продолжить выполнение программы. Или выберите Отладка>Продолжить в меню.
Значения, отображаемые в окне консоли, соответствуют изменениям, произведенным в окне Интерпретация.
Нажмите любую клавишу, чтобы выйти из приложения и остановить отладку.
Установка условной точки останова
Программа отображает строку, которую вводит пользователь. Что произойдет, если пользователь ничего не введет? Это можно проверить с помощью полезной функции отладки, которая называется условной точкой останова.
Щелкните правой кнопкой мыши красную точку, обозначающую точку останова. В контекстном меню выберите Условия. Откроется диалоговое окно Параметры точки останова. Установите флажок Условия, если он еще не установлен.
Для условного выражения введите следующий код в поле, где приведен пример кода, который проверяет, имеет ли
x
значение 5.string.IsNullOrEmpty(name)
String.IsNullOrEmpty(name)
При каждом достижении точки останова отладчик вызывает метод
String.IsNullOrEmpty(name)
и останавливается на этой строке только в том случае, если вызов метода возвращаетtrue
.Вместо условного выражения можно указать количество обращений (выполнение программы будет прервано, пока инструкция не будет выполнена указанное количество раз) или условие фильтра (выполнение программы будет прервано на основе таких атрибутов, как идентификатор потока, имя процесса или имя потока).
Выберите Закрыть, чтобы закрыть диалоговое окно.
Запустите отладку программы, нажав клавишу F5.
Когда в окне консоли появится предложение ввести имя, просто нажмите клавишу ВВОД.
Так как указанное вами условие соблюдается (
name
имеет значениеnull
или String.Empty), выполнение программы будет остановлено при достижении точки останова, то есть перед выполнением методаConsole.WriteLine
.Выберите окно Локальные, в котором отображаются значения локальных переменных для текущего выполняемого метода. В нашем примере этим методом является
Main
. Обратите внимание, что переменнаяname
имеет значение""
или String.Empty.Убедитесь в том, что переменная содержит пустую строку, введя следующую инструкцию в окне Интерпретация и нажав клавишу ВВОД. Результат
true
.? name == String.Empty
? String.IsNullOrEmpty(name)
Вопросительный знак указывает окну интерпретации на необходимость вычислить выражение.
Нажмите клавишу F5, чтобы продолжить выполнение программы.
Нажмите любую клавишу, чтобы закрыть окно консоли и остановить отладку.
Очистите точку останова. Для этого щелкните красную точку в левом поле окна с кодом. Другие способы очистки точки останова — это нажатие клавиши F9 или выбор точки останова отладки > при выборе строки кода.
Пошаговое выполнение программы
Visual Studio позволяет выполнять программу пошагово, отслеживая результат ее выполнения. Для этого обычно задают точку останова и запускают программу в небольшой части ее кода. Поскольку наша программа невелика, давайте выполним ее пошагово.
Выберите Отладка>Шаг с заходом. Или выполните отладку по одному оператору, нажимая клавишу F11.
Следующая выполняемая строка будет выделена, и рядом с ней появится стрелка.
C#
Visual Basic
На этом этапе в окне Локальные показано, что массив
args
пуст, аname
иcurrentDate
имеют значения по умолчанию. Кроме того, Visual Studio открыла пустое окно консоли.Нажмите клавишу F11. Будет выделена следующая выполняемая строка. Окно Локальные не изменяется, и окно консоли остается пустым.
C#
Visual Basic
Нажмите клавишу F11. Visual Studio подсвечивает инструкцию, которая содержит присваивание значения переменной
name
. В окне Локальные отображается, чтоname
имеет значениеnull
, а в окне консоли появилась строка What is your name? (Введите имя:).Ответьте на этот запрос, введя строку в окно консоли и нажав клавишу ВВОД. Консоль никак не отреагирует на это, и введенная строка не будет отображаться в окне консоли, но метод Console.ReadLine получит введенные входные данные.
Нажмите клавишу F11. Visual Studio подсвечивает инструкцию, которая содержит присваивание значения переменной
currentDate
. В окне Локальные отображается значение, полученное в результате вызова метода Console.ReadLine. В окне консоли также отображается строка, указанная в командной строке.Нажмите клавишу F11. В окне Локальные отображается значение переменной
currentDate
, которому было присвоено свойство DateTime.Now. В окне консоли изменений не произошло.Нажмите клавишу F11. Visual Studio вызывает метод Console.WriteLine(String, Object, Object). В окне консоли отображается форматированная строка.
Выберите шаг отладки>. Другим способом остановки пошагового выполнения является нажатие клавиш SHIFT+F11.
В окне консоли отображается сообщение с предложением нажать любую клавишу для выхода.
Нажмите любую клавишу, чтобы закрыть окно консоли и остановить отладку.
Использование конфигурации сборки для выпуска
После тестирования отладочной версии приложения следует скомпилировать и протестировать версию в режиме выпуска. При сборке в режиме выпуска компилятор использует методы оптимизации, которые иногда могут негативно повлиять на поведение приложения. Например, оптимизации компилятора для повышения производительности могут привести к состоянию конкуренции в многопоточных приложениях.
Чтобы собрать и протестировать консольное приложение в режиме выпуска, переключите конфигурацию сборки из режима Отладка в режим Выпуск на панели инструментов.
Если нажать клавишу F5 или выбрать пункт Собрать решение в меню Сборка, Visual Studio скомпилирует версию приложения в режиме выпуска. Эту версию можно протестировать точно так же, как и отладочную.
Далее
В этом руководстве вы использовали средства отладки Visual Studio. В следующем руководстве вы опубликуете развертываемую версию приложения.
В этом руководстве представлены средства отладки, доступные в Visual Studio.
Внимание
Все сочетания клавиш основаны на значениях по умолчанию из Visual Studio. Сочетания клавиш могут отличаться. Дополнительные сведения см. в разделе "Сочетания клавиш" в Visual Studio.
Предварительные условия
- В этом руководстве используется консольное приложение, созданное в руководстве Создание консольного приложения .NET в Visual Studio.
Использование конфигурации отладочной сборки
В Visual Studio используются две встроенные конфигурации сборки — Отладка и Выпуск. Вы воспользуетесь отладочной конфигурацией сборки для отладки и конфигурацией для выпуска для окончательного выпуска программы.
В отладочной конфигурации программы компилируется с полной символической отладочной информацией и без оптимизации. Оптимизация усложняет отладку, поскольку усложняется связь между исходным кодом и сгенерированными инструкциями. Конфигурация для выпуска полностью оптимизирована и не содержит символической отладочной информации.
По умолчанию Visual Studio использует отладочную конфигурацию сборки, поэтому ее не нужно изменять перед отладкой.
Запустите среду Visual Studio.
Откройте проект, созданный по инструкциям из статьи Создание консольного приложения .NET в Visual Studio.
Используемая конфигурация сборки отображается на панели инструментов. На следующем изображении панели инструментов показано, что служба Visual Studio настроена для компиляции отладочной версии приложения:
Установка точки останова
Точка останова приостанавливает выполнение приложения на инструкции, предшествующей той строке, в которой установлена точка останова.
Установите точку останова в строке, где отображается имя, дата и время, щелкнув в левом поле окна изменения кода в этой строке. Левое поле находится слева от номеров строк. Кроме того, установить точку останова можно, поместив курсор в строку кода и нажав клавишу F9 или выбрав Отладка>Переключить точку останова в строке меню.
Как видно на следующем рисунке, строку с точкой останова Visual Studio обозначает подсветкой текста и красной точкой в левом поле.
Нажмите клавишу F5, чтобы запустить программу в режиме отладки. Еще один способ запуска отладки — выбрать в меню параметры Отладка>Начать отладку.
Когда программа запросит имя, введите любую строку в окне консоли и нажмите клавишу ВВОД.
Выполнение программы остановится, когда будет достигнута точка останова, то есть перед выполнением метода
Console.WriteLine
. В окне Локальные отображаются значения переменных, которые определены в текущем выполняемом методе.
Использование окна "Интерпретация"
Окно Интерпретация позволяет взаимодействовать с приложением, которое вы отлаживаете. Вы можете интерактивно изменить значения переменных и посмотреть, как это повлияет на работу программы.
Если окно Интерпретация не отображается, откройте его, выбрав Отладка>Окна>Интерпретация.
Введите
name = "Gracie"
в окне Интерпретация и нажмите клавишу ВВОД.Введите
currentDate = DateTime.Parse("2019-11-16T17:25:00Z").ToUniversalTime()
в окне Интерпретация и нажмите клавишу ВВОД.В окне Интерпретация отображается значение переменной строки и свойства значения DateTime. Кроме того, значения переменных обновляются в окне Локальные.
Нажмите клавишу F5, чтобы продолжить выполнение программы. Или выберите Отладка>Продолжить в меню.
Значения, отображаемые в окне консоли, соответствуют изменениям, произведенным в окне Интерпретация.
Нажмите любую клавишу, чтобы выйти из приложения и остановить отладку.
Установка условной точки останова
Программа отображает строку, которую вводит пользователь. Что произойдет, если пользователь ничего не введет? Это можно проверить с помощью полезной функции отладки, которая называется условной точкой останова.
Щелкните правой кнопкой мыши красную точку, обозначающую точку останова. В контекстном меню выберите Условия. Откроется диалоговое окно Параметры точки останова. Установите флажок Условия, если он еще не установлен.
Для условного выражения введите следующий код в поле, где приведен пример кода, который проверяет, имеет ли
x
значение 5.string.IsNullOrEmpty(name)
String.IsNullOrEmpty(name)
При каждом достижении точки останова отладчик вызывает метод
String.IsNullOrEmpty(name)
и останавливается на этой строке только в том случае, если вызов метода возвращаетtrue
.Вместо условного выражения можно указать количество обращений (выполнение программы будет прервано, пока инструкция не будет выполнена указанное количество раз) или условие фильтра (выполнение программы будет прервано на основе таких атрибутов, как идентификатор потока, имя процесса или имя потока).
Выберите Закрыть, чтобы закрыть диалоговое окно.
Запустите отладку программы, нажав клавишу F5.
Когда в окне консоли появится предложение ввести имя, просто нажмите клавишу ВВОД.
Так как указанное вами условие соблюдается (
name
имеет значениеnull
или String.Empty), выполнение программы будет остановлено при достижении точки останова, то есть перед выполнением методаConsole.WriteLine
.Выберите окно Локальные, в котором отображаются значения локальных переменных для текущего выполняемого метода. В нашем примере этим методом является
Main
. Обратите внимание, что переменнаяname
имеет значение""
или String.Empty.Убедитесь в том, что переменная содержит пустую строку, введя следующую инструкцию в окне Интерпретация и нажав клавишу ВВОД. Результат
true
.? name == String.Empty
? String.IsNullOrEmpty(name)
Вопросительный знак указывает окну интерпретации на необходимость вычислить выражение.
Нажмите клавишу F5, чтобы продолжить выполнение программы.
Нажмите любую клавишу, чтобы закрыть окно консоли и остановить отладку.
Очистите точку останова. Для этого щелкните красную точку в левом поле окна с кодом. Другие способы очистки точки останова — это нажатие клавиши F9 или выбор точки останова отладки > при выборе строки кода.
Пошаговое выполнение программы
Visual Studio позволяет выполнять программу пошагово, отслеживая результат ее выполнения. Для этого обычно задают точку останова и запускают программу в небольшой части ее кода. Поскольку наша программа невелика, давайте выполним ее пошагово.
Выберите Отладка>Шаг с заходом. Или выполните отладку по одному оператору, нажимая клавишу F11.
Следующая выполняемая строка будет выделена, и рядом с ней появится стрелка.
C#
Visual Basic
На этом этапе в окне Локальные показано, что массив
args
пуст, аname
иcurrentDate
имеют значения по умолчанию. Кроме того, Visual Studio открыла пустое окно консоли.Нажмите клавишу F11. Будет выделена следующая выполняемая строка. Окно Локальные не изменяется, и окно консоли остается пустым.
C#
Visual Basic
Нажмите клавишу F11. Visual Studio подсвечивает инструкцию, которая содержит присваивание значения переменной
name
. В окне Локальные отображается, чтоname
имеет значениеnull
, а в окне консоли появилась строка What is your name? (Введите имя:).Ответьте на этот запрос, введя строку в окно консоли и нажав клавишу ВВОД. Консоль никак не отреагирует на это, и введенная строка не будет отображаться в окне консоли, но метод Console.ReadLine получит введенные входные данные.
Нажмите клавишу F11. Visual Studio подсвечивает инструкцию, которая содержит присваивание значения переменной
currentDate
. В окне Локальные отображается значение, полученное в результате вызова метода Console.ReadLine. В окне консоли также отображается строка, указанная в командной строке.Нажмите клавишу F11. В окне Локальные отображается значение переменной
currentDate
, которому было присвоено свойство DateTime.Now. В окне консоли изменений не произошло.Нажмите клавишу F11. Visual Studio вызывает метод Console.WriteLine(String, Object, Object). В окне консоли отображается форматированная строка.
Выберите шаг отладки>. Другим способом остановки пошагового выполнения является нажатие клавиш SHIFT+F11.
В окне консоли отображается сообщение с предложением нажать любую клавишу для выхода.
Нажмите любую клавишу, чтобы закрыть окно консоли и остановить отладку.
Использование конфигурации сборки для выпуска
После тестирования отладочной версии приложения следует скомпилировать и протестировать версию в режиме выпуска. При сборке в режиме выпуска компилятор использует методы оптимизации, которые иногда могут негативно повлиять на поведение приложения. Например, оптимизации компилятора для повышения производительности могут привести к состоянию конкуренции в многопоточных приложениях.
Чтобы собрать и протестировать консольное приложение в режиме выпуска, переключите конфигурацию сборки из режима Отладка в режим Выпуск на панели инструментов.
Если нажать клавишу F5 или выбрать пункт Собрать решение в меню Сборка, Visual Studio скомпилирует версию приложения в режиме выпуска. Эту версию можно протестировать точно так же, как и отладочную.
Далее
В этом руководстве вы использовали средства отладки Visual Studio. В следующем руководстве вы опубликуете развертываемую версию приложения.
В этом руководстве представлены средства отладки, доступные в Visual Studio.
Предварительные условия
- В этом руководстве используется консольное приложение, созданное в руководстве Создание консольного приложения .NET в Visual Studio.
Использование конфигурации отладочной сборки
В Visual Studio используются две встроенные конфигурации сборки — Отладка и Выпуск. Вы воспользуетесь отладочной конфигурацией сборки для отладки и конфигурацией для выпуска для окончательного выпуска программы.
В отладочной конфигурации программы компилируется с полной символической отладочной информацией и без оптимизации. Оптимизация усложняет отладку, поскольку усложняется связь между исходным кодом и сгенерированными инструкциями. Конфигурация для выпуска полностью оптимизирована и не содержит символической отладочной информации.
По умолчанию Visual Studio использует отладочную конфигурацию сборки, поэтому ее не нужно изменять перед отладкой.
Запустите среду Visual Studio.
Откройте проект, созданный по инструкциям из статьи Создание консольного приложения .NET в Visual Studio.
Используемая конфигурация сборки отображается на панели инструментов. На следующем изображении панели инструментов показано, что служба Visual Studio настроена для компиляции отладочной версии приложения:
Установка точки останова
Точка останова приостанавливает выполнение приложения на инструкции, предшествующей той строке, в которой установлена точка останова.
Установите точку останова в строке, где отображается имя, дата и время, щелкнув в левом поле окна изменения кода в этой строке. Левое поле находится слева от номеров строк. Кроме того, установить точку останова можно, поместив курсор в строку кода и нажав клавишу F9 или выбрав Отладка>Переключить точку останова в строке меню.
Как видно на следующем рисунке, строку с точкой останова Visual Studio обозначает подсветкой текста и красной точкой в левом поле.
Нажмите клавишу F5, чтобы запустить программу в режиме отладки. Еще один способ запуска отладки — выбрать в меню параметры Отладка>Начать отладку.
Когда программа запросит имя, введите любую строку в окне консоли и нажмите клавишу ВВОД.
Выполнение программы остановится, когда будет достигнута точка останова, то есть перед выполнением метода
Console.WriteLine
. В окне Локальные отображаются значения переменных, которые определены в текущем выполняемом методе.
Использование окна "Интерпретация"
Окно Интерпретация позволяет взаимодействовать с приложением, которое вы отлаживаете. Вы можете интерактивно изменить значения переменных и посмотреть, как это повлияет на работу программы.
Если окно Интерпретация не отображается, откройте его, выбрав Отладка>Окна>Интерпретация.
Введите
name = "Gracie"
в окне Интерпретация и нажмите клавишу ВВОД.Введите
currentDate = DateTime.Parse("2019-11-16T17:25:00Z").ToUniversalTime()
в окне Интерпретация и нажмите клавишу ВВОД.В окне Интерпретация отображается значение переменной строки и свойства значения DateTime. Кроме того, значения переменных обновляются в окне Локальные.
Нажмите клавишу F5, чтобы продолжить выполнение программы. Или выберите Отладка>Продолжить в меню.
Значения, отображаемые в окне консоли, соответствуют изменениям, произведенным в окне Интерпретация.
Нажмите любую клавишу, чтобы выйти из приложения и остановить отладку.
Установка условной точки останова
Программа отображает строку, которую вводит пользователь. Что произойдет, если пользователь ничего не введет? Это можно проверить с помощью полезной функции отладки, которая называется условной точкой останова.
Щелкните правой кнопкой мыши красную точку, обозначающую точку останова. В контекстном меню выберите Условия. Откроется диалоговое окно Параметры точки останова. Установите флажок Условия, если он еще не установлен.
Для условного выражения введите следующий код в поле, где приведен пример кода, который проверяет, имеет ли
x
значение 5.String.IsNullOrEmpty(name)
String.IsNullOrEmpty(name)
При каждом достижении точки останова отладчик вызывает метод
String.IsNullOrEmpty(name)
и останавливается на этой строке только в том случае, если вызов метода возвращаетtrue
.Вместо условного выражения можно указать количество обращений (выполнение программы будет прервано, пока инструкция не будет выполнена указанное количество раз) или условие фильтра (выполнение программы будет прервано на основе таких атрибутов, как идентификатор потока, имя процесса или имя потока).
Выберите Закрыть, чтобы закрыть диалоговое окно.
Запустите отладку программы, нажав клавишу F5.
Когда в окне консоли появится предложение ввести имя, просто нажмите клавишу ВВОД.
Так как указанное вами условие соблюдается (
name
имеет значениеnull
или String.Empty), выполнение программы будет остановлено при достижении точки останова, то есть перед выполнением методаConsole.WriteLine
.Выберите окно Локальные, в котором отображаются значения локальных переменных для текущего выполняемого метода. В нашем примере этим методом является
Main
. Обратите внимание, что переменнаяname
имеет значение""
или String.Empty.Убедитесь в том, что переменная содержит пустую строку, введя следующую инструкцию в окне Интерпретация и нажав клавишу ВВОД. Результат
true
.? name == String.Empty
? String.IsNullOrEmpty(name)
Вопросительный знак указывает окну интерпретации на необходимость вычислить выражение.
Нажмите клавишу F5, чтобы продолжить выполнение программы.
Нажмите любую клавишу, чтобы закрыть окно консоли и остановить отладку.
Очистите точку останова. Для этого щелкните красную точку в левом поле окна с кодом. Другие способы очистки точки останова — это нажатие клавиши F9 или выбор точки останова отладки > при выборе строки кода.
Пошаговое выполнение программы
Visual Studio позволяет выполнять программу пошагово, отслеживая результат ее выполнения. Для этого обычно задают точку останова и запускают программу в небольшой части ее кода. Поскольку наша программа невелика, давайте выполним ее пошагово. Несмотря на то, что в настоящее время не выполняется отладка, основное внимание уделяется Visual Studio:
Выберите Отладка>Шаг с заходом. Или выполните отладку по одному оператору, нажимая клавишу F11.
Следующая выполняемая строка будет выделена, и рядом с ней появится стрелка.
C#
Visual Basic
На этом этапе в окне Локальные показано, что массив
args
пуст, аname
иcurrentDate
имеют значения по умолчанию. Кроме того, Visual Studio открыла пустое окно консоли.Нажмите клавишу F11. Будет выделена следующая выполняемая строка. Окно Локальные не изменяется, и окно консоли остается пустым.
C#
Visual Basic
Нажмите клавишу F11. Visual Studio подсвечивает инструкцию, которая содержит присваивание значения переменной
name
. В окне Локальные отображается, чтоname
имеет значениеnull
, а в окне консоли появилась строка What is your name? (Введите имя:).Ответьте на этот запрос, введя строку в окно консоли и нажав клавишу ВВОД. Консоль никак не отреагирует на это, и введенная строка не будет отображаться в окне консоли, но метод Console.ReadLine получит введенные входные данные.
Нажмите клавишу F11. Visual Studio подсвечивает инструкцию, которая содержит присваивание значения переменной
currentDate
. В окне Локальные отображается значение, полученное в результате вызова метода Console.ReadLine. В окне консоли также отображается строка, указанная в командной строке.Нажмите клавишу F11. В окне Локальные отображается значение переменной
currentDate
, которому было присвоено свойство DateTime.Now. В окне консоли изменений не произошло.Нажмите клавишу F11. Visual Studio вызывает метод Console.WriteLine(String, Object, Object). В окне консоли отображается форматированная строка.
Выберите шаг отладки>. Другим способом остановки пошагового выполнения является нажатие клавиш SHIFT+F11.
В окне консоли отображается сообщение с предложением нажать любую клавишу для выхода.
Нажмите любую клавишу, чтобы закрыть окно консоли и остановить отладку.
Использование конфигурации сборки для выпуска
После тестирования отладочной версии приложения следует скомпилировать и протестировать версию в режиме выпуска. При сборке в режиме выпуска компилятор использует методы оптимизации, которые иногда могут негативно повлиять на поведение приложения. Например, оптимизации компилятора для повышения производительности могут привести к состоянию конкуренции в многопоточных приложениях.
Чтобы собрать и протестировать консольное приложение в режиме выпуска, переключите конфигурацию сборки из режима Отладка в режим Выпуск на панели инструментов.
Если нажать клавишу F5 или выбрать пункт Собрать решение в меню Сборка, Visual Studio скомпилирует версию приложения в режиме выпуска. Эту версию можно протестировать точно так же, как и отладочную.
Далее
В этом руководстве вы использовали средства отладки Visual Studio. В следующем руководстве вы опубликуете развертываемую версию приложения.