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


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

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

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

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

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

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

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

Screenshot of configuring Hot Reload.

Или откройте Инструменты>Параметры>Отладка>Горячая перезагрузка .NET/C++.

Примечание.

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

Среди параметров Горячей загрузки есть следующие:

  • Enable Hot Reload and Edit and Continue when debugging (Включить Горячую перезагрузку и режим "Изменить и продолжить" при отладке). Включает Горячую перезагрузку при запуске с подключенным отладчиком (F5).

  • Enable Hot Reload when starting without debugging (Включить Горячую перезагрузку при запуске без отладки). Включает Горячую перезагрузку при запуске без подключенного отладчика (Ctrl+F5).

  • Apply Hot Reload on File Save (Применить Горячую перезагрузку при сохранении файла). Применяет изменения кода при сохранении файла.

  • Подробное ведение журнала. Фильтрует объем информации, отображаемой в окне вывода Горячая перезагрузка.

Screenshot of settings for .NET Hot Reload.

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

Пример:

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

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

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

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

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

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

Включение и отключение возможности "Изменить и продолжить".

  1. Если вы находитесь в сеансе отладки, остановите отладку (Отладка>Остановить отладку или сочетанием клавиш SHIFT+F5).

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

    Примечание.

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

  3. В случае с кодом C++ убедитесь, что установлен флажок Включить функцию "Изменить машинный код и продолжить", и задайте другие параметры:

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

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

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

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

  4. Нажмите ОК.

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

Хотя Горячая перезагрузка находится в процессе применения изменений кода, можно остановить операцию.

Пока режим "Изменить и продолжить" находится в процессе внесения изменений в код, можно остановить эту операцию.

Внимание

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

Для остановки внесения изменений в код:

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

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

    При выборе этого параметра никакие изменения в коде не фиксируются.