Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Горячая перезагрузка .NET применяет изменения кода, включая изменения таблиц стилей, к работающему приложению без перезапуска приложения и без потери состояния приложения. Горячая перезагрузка поддерживается для всех ASP.NET Core в проектах .NET 6 или более поздних версий.
Как правило, обновленный код повторно запускается, чтобы ввести в силу следующие условия:
- Некоторые логики запуска выполняются только один раз:
- Если только обновление кода не является обновлением встроенного делегата промежуточного ПО.
- Настроенные службы.
- Создание и настройка маршрута, за исключением случаев, когда обновление кода касается делегата обработчика маршрутов (например,
OnInitialized
).
- В Blazor приложениях платформа автоматически запускает отрисовку Razor компонента .
- В приложениях MVC и Razor Pages горячая перезагрузка активирует автоматическое обновление браузера.
- Удаление атрибута Razorпараметра компонента не приводит к повторному рендеру компонента. Приложение должно быть перезапущено.
Дополнительные сведения о поддерживаемых сценариях см. в статье "Поддерживаемые изменения кода" (C# и Visual Basic).
Blazor WebAssembly
Blazor WebAssembly Горячая перезагрузка поддерживает следующие изменения кода:
- Новые типы.
- Вложенные классы.
- Большинство изменений в телах методов, таких как добавление, удаление и редактирование переменных, выражений и инструкций.
- Изменения в телах лямбда-выражений и локальных функций.
- Добавление статических и экземплярных методов в существующие типы.
- Добавление статических и экземплярных полей, событий и свойств в существующие типы.
- Добавление статических лямбда-выражений в существующие методы.
- Добавление лямбда-функций, которые захватывают
this
, к существующим методам, которые уже захватываютthis
ранее.
Обратите внимание, что при удалении атрибута, который ранее устанавливал значение параметра компонента, компонент удаляется и повторно инициализируется, чтобы задать удаленному параметру значение по умолчанию.
Следующие изменения кода не поддерживаются для Blazor WebAssembly приложений:
- Добавление нового
await
оператора илиyield
выражения ключевого слова . - Изменение имен параметров метода.
Blazor WebAssembly Горячая перезагрузка поддерживает следующие изменения кода:
- Новые типы.
- Вложенные классы.
- Большинство изменений в телах методов, таких как добавление, удаление и редактирование переменных, выражений и инструкций.
- Изменения в телах лямбда-выражений и локальных функций.
- Добавление статических и экземплярных методов в существующие типы.
- Добавление статических полей в существующие типы.
- Добавление статических лямбда-выражений в существующие методы.
- Добавление лямбда-функций, которые захватывают
this
, к существующим методам, которые уже захватываютthis
ранее.
Обратите внимание, что при удалении атрибута, который ранее устанавливал значение параметра компонента, компонент удаляется и повторно инициализируется, чтобы задать удаленному параметру значение по умолчанию.
Следующие изменения кода не поддерживаются для Blazor WebAssembly приложений:
- Добавление нового
await
оператора илиyield
выражения ключевого слова . - Изменение имен параметров метода.
- Добавление полей, событий или свойств экземпляра (не являющихся
static
).
Blazor WebAssembly Горячая перезагрузка поддерживает следующие изменения кода:
- Большинство изменений в телах методов, таких как добавление, удаление и редактирование переменных, выражений и инструкций.
- Изменения в телах лямбда-выражений и локальных функций.
Следующие изменения кода не поддерживаются для Blazor WebAssembly приложений:
- Добавление новых лямбда-кодов или локальных функций.
- Добавление нового
await
оператора илиyield
выражения ключевого слова . - Изменение имен параметров метода.
- Изменения вне тел метода.
- Добавление полей, событий или свойств экземпляра (не являющихся
static
).
.NET CLI (интерфейс командной строки)
Горячая перезагрузка активируется с помощью dotnet watch
команды:
dotnet watch
Чтобы принудительно перестроить и перезапустить приложение, используйте сочетание клавиш CTRL+R в командной оболочке.
Когда производится несовместимое редактирование, называемое грубым редактированием, dotnet watch
запрашивает, хотите ли вы перезапустить приложение:
- Да: перезапускает приложение.
- Нет: не перезапускает приложение и оставляет приложение запущенным без изменений.
- Всегда: перезапускает приложение по мере необходимости при возникновении грубых изменений.
- Никогда: не перезапускает приложение и предотвращает будущие запросы.
Чтобы отключить поддержку горячей перезагрузки, передайте --no-hot-reload
параметр в dotnet watch
команду:
dotnet watch --no-hot-reload
Отключение горячей перезагрузки
Следующий параметр в Properties/launchSettings.json
отключает горячую перезагрузку:
"hotReloadEnabled" : false
Дополнительные ресурсы
Дополнительные сведения см. в документации по Visual Studio в следующих ресурсах:
- Видео .NET 6: Горячая перезагрузка в Visual Studio 2022, VS Code и БЛОКНОТ?!?
- Знакомство с интерфейсом горячей перезагрузки .NET для редактирования кода во время выполнения
- Написание и отладка запущенного кода с помощью горячей перезагрузки в Visual Studio
- Обновления для Blazor и Razor редакторов + горячая перезагрузка для ASP.NET
- Тестирование выполнения с помощью Горячая перезагрузка
ASP.NET Core