Podpora Opětovné načítání za provozu .NET pro ASP.NET Core
.NET Opětovné načítání za provozu aplikuje změny kódu, včetně změn šablon stylů, do spuštěné aplikace bez restartování aplikace a bez ztráty stavu aplikace. Opětovné načítání za provozu se podporuje pro všechny projekty ASP.NET Core 6.0 a novější.
Obecně platí, že se aktualizovaný kód znovu spustí, aby se projevil s následujícími podmínkami:
- Některá logika spouštění se spouští jenom jednou:
- Middleware, pokud není aktualizace kódu delegátem vloženého middlewaru.
- Nakonfigurované služby.
- Vytvoření a konfigurace trasy, pokud není aktualizace kódu delegátem obslužné rutiny trasy (například
OnInitialized
).
- V Blazor aplikacích architektura aktivuje Razor automatické vykreslení komponenty .
- V aplikacích MVC a Razor Pages Opětovné načítání za provozu automaticky aktivuje aktualizaci prohlížeče.
- Odebrání atributu Razorparametru komponenty nezpůsobí, že se komponenta znovu vygeneruje. Aplikace se musí restartovat.
Další informace o podporovaných scénářích najdete v tématu Podporované změny kódu (C# a Visual Basic).
Blazor WebAssembly
Blazor WebAssemblyOpětovné načítání za provozu podporuje následující změny kódu:
- Nové typy
- Vnořené třídy.
- Většina změn v těle metody, jako je přidání, odebrání a úprava proměnných, výrazů a příkazů
- Změny v těle výrazů lambda a místních funkcí.
- Přidání statických metod a metod instancí do existujících typů
- Přidání statických polí, událostí a vlastností do existujících typů
- Přidání statických lambda do existujících metod
- Přidání lambda, které zachycují
this
existující metody, které už byly zachycenythis
dříve.
Všimněte si, že když je atribut odebrán, který dříve nastavil hodnotu parametru komponenty, komponenta je uvolněna a znovu inicializována tak, aby odebraný parametr nastavil zpět na výchozí hodnotu.
Aplikace nepodporují Blazor WebAssembly následující změny kódu:
- Přidání nového
await
operátoru neboyield
výrazu klíčového slova - Změna názvů parametrů metody
Blazor WebAssemblyOpětovné načítání za provozu podporuje následující změny kódu:
- Nové typy
- Vnořené třídy.
- Většina změn v těle metody, jako je přidání, odebrání a úprava proměnných, výrazů a příkazů
- Změny v těle výrazů lambda a místních funkcí.
- Přidání statických metod a metod instancí do existujících typů
- Přidání statických polí k existujícím typům
- Přidání statických lambda do existujících metod
- Přidání lambda, které zachycují
this
existující metody, které už byly zachycenythis
dříve.
Všimněte si, že když je atribut odebrán, který dříve nastavil hodnotu parametru komponenty, komponenta je uvolněna a znovu inicializována tak, aby odebraný parametr nastavil zpět na výchozí hodnotu.
Aplikace nepodporují Blazor WebAssembly následující změny kódu:
- Přidání nového
await
operátoru neboyield
výrazu klíčového slova - Změna názvů parametrů metody
- Přidání polí, událostí nebo vlastností instance
static
Blazor WebAssemblyOpětovné načítání za provozu podporuje následující změny kódu:
- Většina změn v těle metody, jako je přidání, odebrání a úprava proměnných, výrazů a příkazů
- Změny v těle výrazů lambda a místních funkcí.
Aplikace nepodporují Blazor WebAssembly následující změny kódu:
- Přidání nových lambda nebo místních funkcí
- Přidání nového
await
operátoru neboyield
výrazu klíčového slova - Změna názvů parametrů metody
- Změny mimo těla metody.
- Přidání polí, událostí nebo vlastností instance
static
.NET CLI
Opětovné načítání za provozu se aktivuje pomocí dotnet watch
příkazu:
dotnet watch
Pokud chcete vynutit opětovné sestavení a restartování aplikace, použijte kombinaci kláves Ctrl+R v příkazovém prostředí.
Když se provede nepodporovaná úprava kódu označovaná jako hrubá úprava, zobrazí se dotaz, dotnet watch
jestli chcete aplikaci restartovat:
- Ano: Restartuje aplikaci.
- Ne: Nerestartuje aplikaci a ponechá ji spuštěnou bez použitých změn.
- Vždy: Restartuje aplikaci podle potřeby, když dojde k hrubým úpravám.
- Nikdy: Nerestartuje aplikaci a vyhne se budoucím výzvám.
Pokud chcete zakázat podporu Opětovné načítání za provozu, předejte --no-hot-reload
do příkazu možnostdotnet watch
:
dotnet watch --no-hot-reload
Zakázat Opětovné načítání za provozu
Následující nastavení zakáže Properties/launchSettings.json
Opětovné načítání za provozu:
"hotReloadEnabled" : false
Další materiály
Další informace najdete v následující části dokumentace k sadě Visual Studio:
- Video z YouTube .NET 6 Opětovné načítání za provozu v sadě Visual Studio 2022, VS Code a NOTEPAD?!?
- Představujeme prostředí .NET Opětovné načítání za provozu pro úpravy kódu za běhu
- Psaní a ladění spuštěných kódu pomocí Opětovné načítání za provozu v sadě Visual Studio
- Aktualizace pro Blazor Razor editory a Opětovné načítání za provozu pro ASP.NET
- Testování provádění pomocí Opětovné načítání za provozu