Настройка правки и продолжения (C#, VB, C++)
Вы можете отключить или включить горячую перезагрузку, которая ранее называлась "Изменить и продолжить", в диалоговом окне "Параметры Visual Studio " на этапе проектирования. горячая перезагрузка работает только в отладочных сборках. Дополнительные сведения см. Hot Reload.
Изменение и продолжение — это функция экономии времени, которая позволяет вносить изменения в исходный код, пока программа находится в режиме останова. При возобновлении выполнения программы, выбрав команду выполнения, например Продолжить или Шаг , "Изменить и продолжить" автоматически применяет изменения кода с некоторыми ограничениями. Это позволяет вносить изменения в код во время сеанса отладки, а не останавливать, перекомпилировать всю программу и перезапустить сеанс отладки.
Вы можете отключить или включить изменение и продолжить в диалоговом окне "Параметры Visual Studio" во время разработки. "Правки и продолжение" работают только в отладочных сборках. Дополнительные сведения см. в разделе "Изменить и продолжить".
Для нативного C++ Изменить и Продолжить требуется использовать параметр /INCREMENTAL
. Дополнительные сведения о требованиях к функциям в C++ смотрите в этой записи блога и Редактирование и продолжение (C++).
Включение и настройка горячей перезагрузки
Вы можете настроить горячую перезагрузку, выбрав параметры в раскрывающемся списке горячей перезагрузки.
Кроме того, откройте Системные средства>Опции>Отладка>.NET/C++ Hot Reload.
Заметка
Если IntelliTrace включен, и вы собираете как события IntelliTrace, так и информацию о вызовах, функция "Исправить и продолжить" отключается. Дополнительные сведения см. в IntelliTrace.
К параметрам горячей перезагрузки относятся следующие параметры:
включить горячую перезагрузку. Включает горячую перезагрузку при запуске подключенного отладчика (F5).
Включить горячую перезагрузку при запуске без отладки. Включает горячую перезагрузку при запуске без подключения отладчика (CTRL+F5).
Применить мгновенное обновление при сохранении файла. Применяет изменения кода при сохранении файла.
Уровень детализации ведения журнала. Фильтрует объем сведений, отображаемых в окне "Вывод горячей перезагрузки".
Для Hot Reload в .NET вы также можете управлять доступностью Hot Reload на уровне проекта, изменив файл launchSetting.json проекта .NET 6+ и установив значение hotReloadEnabled
на false
.
Пример:
{
"profiles": {
"Console": {
"commandName": "Project",
"hotReloadEnabled": false
}
}
}
Для C++ можно задать дополнительные параметры, открыв Средства>Параметры>Отладка>Общие. Убедитесь, что включен параметр "Включить горячую перезагрузку", и настройте остальные опции:
Применить изменения для продолжения (только в родной среде)
Если выбрано, Visual Studio автоматически компилирует и применяет изменения кода при продолжении отладки из состояния останова. Иначе вы можете выбрать внедрение изменений в код с помощью отладки >.
Предупреждать об устаревшем коде (только для нативного)
Если выбрано, выдает предупреждения об устаревшем коде.
Включение или отключение функции "Правка и продолжение"
Если вы находитесь в сеансе отладки, прекратите отладку (Debug>Прекратить отладку или Shift+F5).
В Инструменты>Параметры> (или Отладка>Параметры) >Отладка>Общиевыберите Изменить и продолжить в правой панели.
Заметка
Если IntelliTrace включен, и вы собираете как события IntelliTrace, так и сведения о вызовах, функция 'Изменение и продолжение' отключена. Дополнительные сведения см. в IntelliTrace.
Для кода C++ убедитесь, что выбран Включить собственные изменения и продолжение, и установите остальные параметры:
Применить изменения для продолжения (только для нативных приложений)
Если выбрано, Visual Studio автоматически компилирует и применяет изменения кода при продолжении отладки из состояния останова. В противном случае вы можете выбрать применение изменений с помощью отладки >Применить изменения кода.
Предупреждать о устаревшем коде (только для нативных систем)
Если выбрано, выдает предупреждения об устаревшем коде.
Нажмите кнопку ОК.
Остановка изменений кода
Пока Hot Reload находится в процессе применения изменений кода, операцию можно остановить.
Пока функция "Edit and Continue" в процессе применения изменений кода, вы можете остановить операцию.
Осторожность
Остановка изменений кода в управляемом коде может привести к непредвиденным результатам. Применение изменений к управляемому коду обычно является быстрым процессом, поэтому редко требуется остановить изменения кода в управляемом коде.
Чтобы остановить применение изменений кода, выполните следующее:
Выберите Остановить применение изменений кода в меню отладки.
Этот пункт меню отображается только при применении изменений кода.
Если выбрать этот параметр, ни одно из изменений кода не фиксируется.