Udostępnij przez


Obsługa Hot Reload .NET dla ASP.NET Core

Przeładowywanie na gorąco platformy .NET wprowadza zmiany w kodzie, w tym w arkuszach stylów, do uruchomionej aplikacji bez ponownego jej uruchamiania i bez utraty stanu. Hot Reload jest obsługiwany dla wszystkich projektów ASP.NET Core na platformie .NET 6 lub 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 dotyczy delegata oprogramowania pośredniczącego osadzonego inline.
    • Skonfigurowane usługi.
    • Tworzenie i konfiguracja tras, chyba że aktualizacja kodu dotyczy delegata obsługi ścieżki (na przykład OnInitialized).
  • W Blazor aplikacjach platforma automatycznie wyzwala renderowanie składnika.
  • W aplikacjach MVC i Razor Pages funkcja Hot Reload wyzwala automatyczne odświeżanie przeglądarki.
  • Usunięcie atrybutu Razorparametru składnika nie powoduje ponownego renderowania składnika. 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 WebAssembly Przeładowywanie na gorąco obsługuje następujące zmiany kodu:

  • Nowe typy.
  • Klasy zagnieżdżone.
  • Większość zmian w ciałach metod dotyczy dodawania, usuwania i edytowania zmiennych, wyrażeń oraz 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, które przechwytują this, do istniejących metod, które wcześniej przechwytywały this.

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 WebAssembly Przeładowywanie na gorąco obsługuje następujące zmiany kodu:

  • Nowe typy.
  • Klasy zagnieżdżone.
  • Większość zmian w ciałach metod dotyczy dodawania, usuwania i edytowania zmiennych, wyrażeń oraz 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, które przechwytują this, do istniejących metod, które wcześniej przechwytywały this.

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 WebAssembly Przeładowywanie na gorąco obsługuje następujące zmiany kodu:

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 dokonane poza ciałami metod.
  • Dodawanie pól, zdarzeń lub właściwości wystąpienia (innychstatic niż).

Interfejs wiersza polecenia (CLI) platformy .NET

Ponowne ładowanie na gorąco jest aktywowane za pomocą 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 drastyczną edycją, 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ę Hot Reload, przekaż --no-hot-reload opcję do dotnet watch polecenia:

dotnet watch --no-hot-reload

Wyłącz przeładowywanie na gorąco

Następujące ustawienie w programie Properties/launchSettings.json powoduje wyłączenie Hot Reload:

"hotReloadEnabled" : false

Dodatkowe zasoby

Aby uzyskać więcej informacji, zobacz następujące zasoby w dokumentacji programu Visual Studio: