Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
.NET Hot Reload 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. Il ricaricamento rapido è supportato per tutti i ASP.NET Core in progetti .NET 6 o 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 la modifica del codice non riguardi un delegato middleware inline.
- Servizi configurati.
- Creazione e configurazione della route, tranne nel caso in cui l'aggiornamento del codice riguardi 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 Razor attributo 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 WebAssembly Ricaricamento 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 dellefunzioni locali.
- Aggiunta di metodi statici e di istanza a tipi esistenti.
- Aggiunta di campi, eventi e proprietà statici e di istanza a tipi esistenti.
- Aggiungere lambda statici ai metodi esistenti.
- Aggiunta di espressioni lambda che acquisiscono
thisa metodi esistenti che già acquisivanothisin 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
awaitoperatore oyieldparola chiave espressione. - Modifica dei nomi dei parametri del metodo.
Blazor WebAssembly Ricaricamento 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 dellefunzioni locali.
- Aggiunta di metodi statici e di istanza a tipi esistenti.
- Aggiunta di campi statici ai tipi esistenti.
- Aggiungere lambda statici ai metodi esistenti.
- Aggiunta di espressioni lambda che acquisiscono
thisa metodi esistenti che già acquisivanothisin 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
awaitoperatore oyieldparola chiave espressione. - Modifica dei nomi dei parametri del metodo.
- Aggiunta di campi, eventi o proprietà (non-
static) dell'istanza.
Blazor WebAssembly Ricaricamento 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 dellefunzioni 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
awaitoperatore oyieldparola chiave espressione. - Modifica dei nomi dei parametri del metodo.
- Modifiche al di fuori dei corpi dei metodi.
- Aggiunta di campi, eventi o proprietà (non-
static) dell'istanza.
Interfaccia a riga di comando di .NET
Il 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 quando necessario in caso di modifiche improvvise.
- Mai: non riavvia l'app ed evita le richieste future.
Per disabilitare il supporto per il ricaricamento rapido, passare l'opzione --no-hot-reload al dotnet watch comando :
dotnet watch --no-hot-reload
Disabilitare il 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 :NET 6 Hot Reload in Visual Studio 2022, VS Code e NOTEPAD?!?
- Introduzione all'esperienza di ricaricamento rapido di .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 e ricaricamento rapido per ASP.NET
- Esecuzione di test con Ricaricamento rapido