Sdílet prostřednictvím


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 zachyceny this 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:

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 zachyceny this 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:

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 nebo yield 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í instancestatic

.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: