Supporto di .NET Ricaricamento rapido per ASP.NET Core

.NET Ricaricamento rapido applica modifiche al codice, incluse le modifiche apportate ai fogli di stile, a un'app in esecuzione senza riavviare l'app e senza perdere lo stato dell'app. Ricaricamento rapido è supportato per tutti i progetti ASP.NET Core 6.0 e versioni successive.

In genere, il codice aggiornato viene rieseguito per rendere effettive le condizioni seguenti:

  • La logica di avvio viene eseguita una sola volta:
    • Middleware, a meno che l'aggiornamento del codice non sia a un delegato middleware inline.
    • Servizi configurati.
    • Creazione e configurazione della route, a meno che l'aggiornamento del codice non sia a un delegato del gestore di route (ad esempio, OnInitialized).
  • Nelle Blazor app il framework attiva automaticamente il rendering di un Razor componente .
  • Nelle app MVC e Razor Pages Ricaricamento rapido attiva automaticamente un aggiornamento del browser.
  • La rimozione di un Razorattributo di parametro del componente non comporta il rerender del componente. L'app deve essere riavviata.

Per altre informazioni sugli scenari supportati, vedere Modifiche al codice supportate (C# e Visual Basic).

Blazor WebAssembly

Blazor WebAssemblyRicaricamento rapido supporta le modifiche di codice seguenti:

  • Nuovi tipi.
  • Classi annidate.
  • La maggior parte delle modifiche apportate ai corpi dei metodi, ad esempio l'aggiunta, la rimozione e la modifica di variabili, espressioni e istruzioni.
  • Modifiche ai corpi delle espressioni lambda e delle funzioni locali.
  • Aggiunta di metodi statici e di istanza a tipi esistenti.
  • Aggiunta di campi, eventi e proprietà statici e di istanza a tipi esistenti.
  • Aggiunta di espressioni lambda statiche ai metodi esistenti.
  • Aggiunta di espressioni lambda che acquisiscino this a metodi esistenti già acquisiti this in precedenza.

Si noti che quando un attributo viene rimosso che in precedenza impostava il valore di un parametro componente, il componente viene eliminato e inizializzato nuovamente per impostare nuovamente il parametro rimosso sul valore predefinito.

Le modifiche al codice seguenti non sono supportate per Blazor WebAssembly le app:

Blazor WebAssemblyRicaricamento rapido supporta le modifiche di codice seguenti:

  • Nuovi tipi.
  • Classi annidate.
  • La maggior parte delle modifiche apportate ai corpi dei metodi, ad esempio l'aggiunta, la rimozione e la modifica di variabili, espressioni e istruzioni.
  • Modifiche ai corpi delle espressioni lambda e delle funzioni locali.
  • Aggiunta di metodi statici e di istanza a tipi esistenti.
  • Aggiunta di campi statici ai tipi esistenti.
  • Aggiunta di espressioni lambda statiche ai metodi esistenti.
  • Aggiunta di espressioni lambda che acquisiscino this a metodi esistenti già acquisiti this in precedenza.

Si noti che quando un attributo viene rimosso che in precedenza impostava il valore di un parametro componente, il componente viene eliminato e inizializzato nuovamente per impostare nuovamente il parametro rimosso sul valore predefinito.

Le modifiche al codice seguenti non sono supportate per Blazor WebAssembly le app:

Blazor WebAssemblyRicaricamento rapido supporta le modifiche di codice seguenti:

  • La maggior parte delle modifiche apportate ai corpi dei metodi, ad esempio l'aggiunta, la rimozione e la modifica di variabili, espressioni e istruzioni.
  • Modifiche ai corpi delle espressioni lambda e delle funzioni locali.

Le modifiche al codice seguenti non sono supportate per Blazor WebAssembly le app:

  • Aggiunta di nuove espressioni lambda o funzioni locali.
  • Aggiunta di un nuovo await operatore o yield espressione di parola chiave .
  • Modifica dei nomi dei parametri del metodo.
  • Cambia al di fuori dei corpi del metodo.
  • Aggiunta di campi, eventi o proprietà dell'istanza (nonstatic).

CLI .NET

Ricaricamento rapido viene attivato usando il dotnet watch comando :

dotnet watch

Per forzare la ricompilazione e il riavvio dell'app, usare la combinazione di tastiera CTRL+R nella shell dei comandi.

Quando viene apportata una modifica del codice non supportata, denominata modifica scortese, dotnet watch chiede se si vuole riavviare l'app:

  • : riavvia l'app.
  • No: non riavvia l'app e lascia l'app in esecuzione senza le modifiche applicate.
  • Sempre: riavvia l'app in base alle esigenze quando si verificano modifiche non maleducate.
  • Mai: non riavvia l'app ed evita le richieste future.

Per disabilitare il supporto per Ricaricamento rapido, passare l'opzione --no-hot-reload al dotnet watch comando :

dotnet watch --no-hot-reload

Disabilitare Ricaricamento rapido

L'impostazione seguente in Properties/launchSettings.json disabilita Ricaricamento rapido:

"hotReloadEnabled" : false

Risorse aggiuntive

Per altre informazioni, vedere le risorse seguenti nella documentazione di Visual Studio: