Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
.NET Hot Reload aplikuje změny kódu, včetně změn stylů, na běžící aplikaci, aniž by bylo nutné ji restartovat a bez ztráty stavu. Podporuje se Hot Reload pro všechny projekty ASP.NET Core v .NET 6 nebo novějších.
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 aktualizace kódu není určena pro delegáta 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 funkce Hot Reload 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 WebAssembly Dynamické načítání podporuje následující změny kódu:
- Nové typy
- Vnořené třídy.
- Většinu změn v těle metody tvoří 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 funkcí, které zachycují
thisk existujícím metodám, které již dříve zachytilythis.
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.
Pro následující aplikace Blazor WebAssembly nejsou podporovány změny kódu:
- Přidání nového
awaitoperátoru neboyieldvýrazu klíčového slova - Změna názvů parametrů metody
Blazor WebAssembly Dynamické načítání podporuje následující změny kódu:
- Nové typy
- Vnořené třídy.
- Většinu změn v těle metody tvoří 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 funkcí, které zachycují
thisk existujícím metodám, které již dříve zachytilythis.
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.
Pro následující aplikace Blazor WebAssembly nejsou podporovány změny kódu:
- Přidání nového
awaitoperátoru neboyieldvýrazu klíčového slova - Změna názvů parametrů metody
- Přidání instančních (ne-
static) polí, událostí nebo vlastností.
Blazor WebAssembly Dynamické načítání podporuje následující změny kódu:
- Většinu změn v těle metody tvoří 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í.
Pro následující aplikace Blazor WebAssembly nejsou podporovány změny kódu:
- Přidání nových lambda funkcí nebo místních funkcí
- Přidání nového
awaitoperátoru neboyieldvýrazu klíčového slova - Změna názvů parametrů metody
- Změny mimo těla metody.
- Přidání instančních (ne-
static) polí, událostí nebo vlastností.
.NET CLI
Hot Reload se aktivuje pomocí dotnet watch příkazem.
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 Hot Reload, předejte možnost --no-hot-reload příkazu dotnet watch.
dotnet watch --no-hot-reload
Zakázat Hot Reload
Následující nastavení v Properties/launchSettings.json zakáže rychlé načítání:
"hotReloadEnabled" : false
Dodatečné zdroje
Další informace najdete v následující části dokumentace k sadě Visual Studio:
- Video z YouTube .NET 6 Hot Reload ve Visual Studio 2022, VS Code a Notepad?!?
- Představujeme zážitek .NET Hot Reload pro úpravy kódu během běhu programu
- Psaní a ladění spuštěného kódu pomocí Aktualizace za běhu v sadě Visual Studio
- Aktualizace pro Blazor a Razor editory + Rychlé načítání pro ASP.NET
- Testování provádění pomocí Opětovné načítání za provozu