Поделиться через


Настройка правки и продолжения (C#, VB, C++)

Вы можете отключить или включить горячую перезагрузку, которая ранее называлась "Изменить и продолжить", в диалоговом окне "Параметры Visual Studio " на этапе проектирования. горячая перезагрузка работает только в отладочных сборках. Дополнительные сведения см. Hot Reload.

Изменение и продолжение — это функция экономии времени, которая позволяет вносить изменения в исходный код, пока программа находится в режиме останова. При возобновлении выполнения программы, выбрав команду выполнения, например Продолжить или Шаг , "Изменить и продолжить" автоматически применяет изменения кода с некоторыми ограничениями. Это позволяет вносить изменения в код во время сеанса отладки, а не останавливать, перекомпилировать всю программу и перезапустить сеанс отладки.

Вы можете отключить или включить изменение и продолжить в диалоговом окне "Параметры Visual Studio" во время разработки. "Правки и продолжение" работают только в отладочных сборках. Дополнительные сведения см. в разделе "Изменить и продолжить".

Для нативного C++ Изменить и Продолжить требуется использовать параметр /INCREMENTAL. Дополнительные сведения о требованиях к функциям в C++ смотрите в этой записи блога и Редактирование и продолжение (C++).

Включение и настройка горячей перезагрузки

Вы можете настроить горячую перезагрузку, выбрав параметры в раскрывающемся списке горячей перезагрузки.

Снимок экрана настройки функции

Кроме того, откройте Системные средства>Опции>Отладка>.NET/C++ Hot Reload.

Заметка

Если IntelliTrace включен, и вы собираете как события IntelliTrace, так и информацию о вызовах, функция "Исправить и продолжить" отключается. Дополнительные сведения см. в IntelliTrace.

К параметрам горячей перезагрузки относятся следующие параметры:

  • включить горячую перезагрузку. Включает горячую перезагрузку при запуске подключенного отладчика (F5).

  • Включить горячую перезагрузку при запуске без отладки. Включает горячую перезагрузку при запуске без подключения отладчика (CTRL+F5).

  • Применить мгновенное обновление при сохранении файла. Применяет изменения кода при сохранении файла.

  • Уровень детализации ведения журнала. Фильтрует объем сведений, отображаемых в окне "Вывод горячей перезагрузки".

снимок экрана: параметры для горячей перезагрузки .NET.

Для Hot Reload в .NET вы также можете управлять доступностью Hot Reload на уровне проекта, изменив файл launchSetting.json проекта .NET 6+ и установив значение hotReloadEnabled на false.

Пример:

{
  "profiles": {
    "Console": {
      "commandName": "Project",
      "hotReloadEnabled": false
    }
  }
}

Для C++ можно задать дополнительные параметры, открыв Средства>Параметры>Отладка>Общие. Убедитесь, что включен параметр "Включить горячую перезагрузку", и настройте остальные опции:

  • Применить изменения для продолжения (только в родной среде)

    Если выбрано, Visual Studio автоматически компилирует и применяет изменения кода при продолжении отладки из состояния останова. Иначе вы можете выбрать внедрение изменений в код с помощью отладки >.

  • Предупреждать об устаревшем коде (только для нативного)

    Если выбрано, выдает предупреждения об устаревшем коде.

Включение или отключение функции "Правка и продолжение"

  1. Если вы находитесь в сеансе отладки, прекратите отладку (Debug>Прекратить отладку или Shift+F5).

  2. В Инструменты>Параметры> (или Отладка>Параметры) >Отладка>Общиевыберите Изменить и продолжить в правой панели.

    Заметка

    Если IntelliTrace включен, и вы собираете как события IntelliTrace, так и сведения о вызовах, функция 'Изменение и продолжение' отключена. Дополнительные сведения см. в IntelliTrace.

  3. Для кода C++ убедитесь, что выбран Включить собственные изменения и продолжение, и установите остальные параметры:

    • Применить изменения для продолжения (только для нативных приложений)

      Если выбрано, Visual Studio автоматически компилирует и применяет изменения кода при продолжении отладки из состояния останова. В противном случае вы можете выбрать применение изменений с помощью отладки >Применить изменения кода.

    • Предупреждать о устаревшем коде (только для нативных систем)

      Если выбрано, выдает предупреждения об устаревшем коде.

  4. Нажмите кнопку ОК.

Остановка изменений кода

Пока Hot Reload находится в процессе применения изменений кода, операцию можно остановить.

Пока функция "Edit and Continue" в процессе применения изменений кода, вы можете остановить операцию.

Осторожность

Остановка изменений кода в управляемом коде может привести к непредвиденным результатам. Применение изменений к управляемому коду обычно является быстрым процессом, поэтому редко требуется остановить изменения кода в управляемом коде.

Чтобы остановить применение изменений кода, выполните следующее:

  • Выберите Остановить применение изменений кода в меню отладки.

    Этот пункт меню отображается только при применении изменений кода.

    Если выбрать этот параметр, ни одно из изменений кода не фиксируется.