Obsługa platformy .NET Przeładowywanie na gorąco dla platformy ASP.NET Core
Program .NET Przeładowywanie na gorąco stosuje zmiany kodu, w tym zmiany w arkuszach stylów, do uruchomionej aplikacji bez ponownego uruchamiania aplikacji i bez utraty stanu aplikacji. Przeładowywanie na gorąco jest obsługiwana dla wszystkich projektów ASP.NET Core 6.0 i nowszych.
Ogólnie rzecz biorąc zaktualizowany kod zostanie ponownie uruchomiony, aby zastosować następujące warunki:
- Niektóre logiki uruchamiania są uruchamiane tylko raz:
- Oprogramowanie pośredniczące, chyba że aktualizacja kodu jest pełnomocnikiem wbudowanego oprogramowania pośredniczącego.
- Skonfigurowane usługi.
- Tworzenie trasy i konfiguracja, chyba że aktualizacja kodu jest pełnomocnikiem procedury obsługi tras (na przykład
OnInitialized
).
- W Blazor aplikacjach platforma wyzwala Razor automatycznie renderowany składnik .
- W aplikacjach MVC i Razor Pages Przeładowywanie na gorąco wyzwala automatyczne odświeżanie przeglądarki.
- Usunięcie atrybutu Razorparametru składnika nie powoduje, że składnik ma wartość rerender. Aplikacja musi zostać ponownie uruchomiona.
Aby uzyskać więcej informacji na temat obsługiwanych scenariuszy, zobacz Obsługiwane zmiany kodu (C# i Visual Basic).
Blazor WebAssembly
Blazor WebAssemblyPrzeładowywanie na gorąco obsługuje następujące zmiany kodu:
- Nowe typy.
- Klasy zagnieżdżone.
- Większość zmian w ciałach metod, takich jak dodawanie, usuwanie i edytowanie zmiennych, wyrażeń i instrukcji.
- Zmiany w ciałach wyrażeń lambda i funkcji lokalnych.
- Dodawanie metod statycznych i wystąpień do istniejących typów.
- Dodawanie pól statycznych, zdarzeń i właściwości do istniejących typów.
- Dodawanie statycznych wyrażeń lambda do istniejących metod.
- Dodanie wyrażeń lambda przechwyconych
this
do istniejących metod, które zostały już przechwyconethis
wcześniej.
Należy pamiętać, że po usunięciu atrybutu, który wcześniej ustawił wartość parametru składnika, składnik jest usuwany i ponownie inicjowany w celu ustawienia usuniętego parametru z powrotem na wartość domyślną.
Następujące zmiany kodu nie są obsługiwane w przypadku Blazor WebAssembly aplikacji:
- Dodawanie nowego
await
operatora lubyield
wyrażenia kluczowego . - Zmiana nazw parametrów metody.
Blazor WebAssemblyPrzeładowywanie na gorąco obsługuje następujące zmiany kodu:
- Nowe typy.
- Klasy zagnieżdżone.
- Większość zmian w ciałach metod, takich jak dodawanie, usuwanie i edytowanie zmiennych, wyrażeń i instrukcji.
- Zmiany w ciałach wyrażeń lambda i funkcji lokalnych.
- Dodawanie metod statycznych i wystąpień do istniejących typów.
- Dodawanie pól statycznych do istniejących typów.
- Dodawanie statycznych wyrażeń lambda do istniejących metod.
- Dodanie wyrażeń lambda przechwyconych
this
do istniejących metod, które zostały już przechwyconethis
wcześniej.
Należy pamiętać, że po usunięciu atrybutu, który wcześniej ustawił wartość parametru składnika, składnik jest usuwany i ponownie inicjowany w celu ustawienia usuniętego parametru z powrotem na wartość domyślną.
Następujące zmiany kodu nie są obsługiwane w przypadku Blazor WebAssembly aplikacji:
- Dodawanie nowego
await
operatora lubyield
wyrażenia kluczowego . - Zmiana nazw parametrów metody.
- Dodawanie pól, zdarzeń lub właściwości wystąpienia (innych
static
niż).
Blazor WebAssemblyPrzeładowywanie na gorąco obsługuje następujące zmiany kodu:
- Większość zmian w ciałach metod, takich jak dodawanie, usuwanie i edytowanie zmiennych, wyrażeń i instrukcji.
- Zmiany w ciałach wyrażeń lambda i funkcji lokalnych.
Następujące zmiany kodu nie są obsługiwane w przypadku Blazor WebAssembly aplikacji:
- Dodawanie nowych funkcji lambd lub lokalnych.
- Dodawanie nowego
await
operatora lubyield
wyrażenia kluczowego . - Zmiana nazw parametrów metody.
- Zmiany poza ciałami metod.
- Dodawanie pól, zdarzeń lub właściwości wystąpienia (innych
static
niż).
.NET CLI
Przeładowywanie na gorąco jest aktywowany przy użyciu dotnet watch
polecenia :
dotnet watch
Aby wymusić ponowne skompilowanie i ponowne uruchomienie aplikacji, użyj kombinacji klawiatury Ctrl+R w powłoce poleceń.
Po wprowadzeniu nieobsługiwanej edycji kodu, nazywanej niegrzecznym edytowaniem, dotnet watch
pyta, czy chcesz ponownie uruchomić aplikację:
- Tak: uruchamia ponownie aplikację.
- Nie: nie uruchamia ponownie aplikacji i pozostawia aplikację uruchomioną bez zastosowanych zmian.
- Zawsze: uruchamia ponownie aplikację zgodnie z potrzebami, gdy wystąpią niegrzeczne zmiany.
- Nigdy: nie uruchamia ponownie aplikacji i unika monitów w przyszłości.
Aby wyłączyć obsługę Przeładowywanie na gorąco, przekaż --no-hot-reload
opcję do dotnet watch
polecenia :
dotnet watch --no-hot-reload
Wyłączanie Przeładowywanie na gorąco
Następujące ustawienie w programie Properties/launchSettings.json
wyłącza Przeładowywanie na gorąco:
"hotReloadEnabled" : false
Dodatkowe zasoby
Aby uzyskać więcej informacji, zobacz następujące zasoby w dokumentacji programu Visual Studio:
- Wideo youTube .NET 6 Przeładowywanie na gorąco w programie Visual Studio 2022, VS Code i NOTATNIKu?!?
- Wprowadzenie do środowiska platformy .NET Przeładowywanie na gorąco do edytowania kodu w czasie wykonywania
- Pisanie i debugowanie uruchomionego kodu przy użyciu Przeładowywanie na gorąco w programie Visual Studio
- Aktualizacje dla Blazor edytorów i Razor Przeładowywanie na gorąco dla ASP.NET
- Wykonywanie testów za pomocą Przeładowywanie na gorąco