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à acquisitithis
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:
- Aggiunta di un nuovo
await
operatore oyield
espressione di parola chiave . - Modifica dei nomi dei parametri del metodo.
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à acquisitithis
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:
- Aggiunta di un nuovo
await
operatore oyield
espressione di parola chiave . - Modifica dei nomi dei parametri del metodo.
- Aggiunta di campi, eventi o proprietà dell'istanza (non
static
).
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 oyield
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 (non
static
).
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:
- Sì: 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:
- Video di YouTube su .NET 6 Ricaricamento rapido in Visual Studio 2022, VS Code e NOTEPAD?!?
- Introduzione all'esperienza di Ricaricamento rapido .NET per la modifica del codice in fase di esecuzione
- Scrivere ed eseguire il debug di codice in esecuzione con Ricaricamento rapido in Visual Studio
- Aggiornamenti per Blazor & Razor editor + Ricaricamento rapido per ASP.NET
- Esecuzione di test con Ricaricamento rapido