Sdílet prostřednictvím


Podpora okamžitého načítání za běhu .NET pro ASP.NET Core

.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í this k existujícím metodám, které již dříve zachytily this.

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:

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í this k existujícím metodám, které již dříve zachytily this.

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:

Blazor WebAssembly Dynamické načítání podporuje následující změny kódu:

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 await operátoru nebo yield vý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: