Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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. Przeładowywanie na gorąco 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 Przeładowywanie na gorąco 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łythis.
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
awaitoperatora lubyieldwyrażenia kluczowego . - Zmiana nazw parametrów metody.
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łythis.
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
awaitoperatora lubyieldwyrażenia kluczowego . - Zmiana nazw parametrów metody.
- Dodawanie pól, zdarzeń lub właściwości wystąpienia (innych
staticniż).
Blazor WebAssembly Przeładowywanie na gorąco obsługuje następujące zmiany kodu:
- 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.
Następujące zmiany kodu nie są obsługiwane w przypadku Blazor WebAssembly aplikacji:
- Dodawanie nowych funkcji lambd lub lokalnych.
- Dodawanie nowego
awaitoperatora lubyieldwyrażenia kluczowego . - Zmiana nazw parametrów metody.
- Zmiany dokonane poza ciałami metod.
- Dodawanie pól, zdarzeń lub właściwości wystąpienia (innych
staticniż).
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ę Przeładowywanie na gorąco, 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 Przeładowywanie na gorąco:
"hotReloadEnabled" : false
WebAssembly Przeładowywanie na gorąco (WasmEnableHotReload)
W platformie .NET 10 i nowszych wersjach właściwość MSBuild WasmEnableHotReload określa, czy infrastruktura funkcji Przeładowywanie na gorąco jest uwzględniana w wyniku kompilacji aplikacji .NET WebAssembly, w tym zarówno aplikacji Blazor WebAssembly, jak i projektów aplikacji przeglądarkowych innych niż Blazor WebAssembly (wasmbrowser template). Dla konfiguracji Debug właściwość jest domyślnie ustawiona na true.
Ustawienie właściwości na false usuwa zależności funkcji Przeładowywanie na gorąco z danych wyjściowych dotnet build, co jest przydatne podczas tworzenia artefaktów zgodnych z bundlerami, na przykład do użycia z narzędziami webpack lub Vite.
Aby wyłączyć Przeładowywanie na gorąco dla aplikacji WebAssembly, ustaw właściwość na false w pliku projektu aplikacji (.csproj):
<PropertyGroup>
<WasmEnableHotReload>false</WasmEnableHotReload>
</PropertyGroup>
Aby włączyć Przeładowywanie na gorąco dla niestandardowej (innej niżDebug) konfiguracji, ustaw właściwość na :true
<PropertyGroup>
<WasmEnableHotReload>true</WasmEnableHotReload>
</PropertyGroup>
Aby uzyskać więcej informacji na temat kontrolowania Przeładowywanie na gorąco w Blazor WebAssembly aplikacjach, zobacz Debugowanie aplikacji ASP.NET CoreBlazor.
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 Visual Studio 2022, VS Code i Notepad?!?
- Wprowadzenie do funkcji Przeładowywanie na gorąco .NET, umożliwiającej edytowanie kodu w trakcie jego działania
- Pisanie i debugowanie uruchomionego kodu za pomocą funkcji Przeładowywania na gorąco w programie Visual Studio
- Aktualizacje dla edytorów Blazor i Razor oraz Przeładowywanie na gorąco dla ASP.NET
- Uruchamianie testów z użyciem gorącego przeładowania