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ż przechwycone this 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:

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ż przechwycone this 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:

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 lub yield wyrażenia kluczowego .
  • Zmiana nazw parametrów metody.
  • Zmiany poza ciałami metod.
  • Dodawanie pól, zdarzeń lub właściwości wystąpienia (innychstatic 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: