Condividi tramite


Configurare Ricaricamento rapido (C#, VB, C++)

È possibile disabilitare o abilitare Ricaricamento rapido (precedentemente denominata Modifica e continuazione) dal menu Visual Studio Tools>Options in fase di progettazione. Ricaricamento rapido funziona solo nelle compilazioni di debug. Per altre informazioni, vedere Ricaricamento rapido.

Per C++ nativo, Ricaricamento rapido richiede l'uso dell'opzione /INCREMENTAL. Per altre informazioni sui requisiti delle funzionalità in C++, vedere questo post di blog e Modifica e continuazione (C++).

Annotazioni

Se IntelliTrace è abilitato e si raccolgono sia gli eventi IntelliTrace che le informazioni sulle chiamate, Ricaricamento rapido è disabilitato. Per altre informazioni, vedere IntelliTrace.

Abilitare e configurare Ricaricamento rapido

È possibile configurare Ricaricamento rapido selezionando Impostazioni dal pulsante a discesa Ricaricamento rapido.

Screenshot della configurazione di Ricaricamento rapido.

In alternativa, aprire il riquadro Tools>Options e modificare le opzioni nel riquadro Tutte le impostazioni >Debugging>.NET/C++ Ricaricamento rapido sezione. Sono disponibili le opzioni seguenti:

  • Enable Ricaricamento rapido: usare la funzionalità di Ricaricamento rapido con codice .NET e C++ quando l'app è in esecuzione con il debugger collegato (F5).

  • Applicare automaticamente le modifiche in caso di continuazione (solo nativo): Visual Studio compila automaticamente e applica tutte le modifiche di codice in sospeso apportate quando si continua il processo da uno stato di interruzione. Se non è selezionata, è possibile scegliere di applicare le modifiche usando la voce Applica modifiche al codice dal menu Debug .

  • Avvisa di codice non aggiornato (solo nativo): ottenere avvisi sul codice non aggiornato.

  • Enable quando non si esegue il debug: abilita Ricaricamento rapido quando l'app viene eseguita senza il debugger collegato (Ctrl + F5).

  • Applica al salvataggio del file: applica le modifiche quando il file viene salvato.

  • Logging verbosity: Impostare il livello di registrazione quando Ricaricamento rapido è abilitato: Minimal, Detailed o Diagnostic.

Screenshot delle impostazioni per Ricaricamento rapido .NET C++ in Visual Studio.

In alternativa, aprire la finestra di dialogo Tools>Options e modificare le opzioni nella sezione Debugging>.NET/C++ Ricaricamento rapido. Sono disponibili le opzioni seguenti:

  • Enable Ricaricamento rapido: abilita Ricaricamento rapido a partire dal debugger collegato (F5).

  • Enable Ricaricamento rapido all'avvio senza eseguire il debug: abilita Ricaricamento rapido all'avvio senza il debugger collegato (CTRL+F5).

  • Apply Ricaricamento rapido in File Save: applica le modifiche al codice quando si salva il file.

  • Logging Verbosity: filtra la quantità di informazioni visualizzate nella finestra output Ricaricamento rapido.

Screenshot delle impostazioni per .NET Ricaricamento rapido.

Per C++, è possibile impostare opzioni aggiuntive aprendo Strumenti>Opzioni>debug>Generale. Assicurarsi che sia selezionato Enable Ricaricamento rapido e impostare le altre opzioni:

  • Applica le modifiche in corso (solo nativo): Visual Studio compila automaticamente e applica tutte le modifiche di codice in sospeso apportate quando si riprende il processo da uno stato di pausa. Se non è selezionata, è possibile scegliere di applicare le modifiche usando la voce Applica modifiche al codice dal menu Debug .

  • Avvisa di codice non aggiornato (solo nativo): ottenere avvisi sul codice non aggiornato.

Per .NET Ricaricamento rapido, è anche possibile controllare se Ricaricamento rapido è disponibile a livello di progetto modificando .NET 6+ launchSettings.json file e impostando hotReloadEnabled su false.

Esempio:

{
  "profiles": {
    "Console": {
      "commandName": "Project",
      "hotReloadEnabled": false
    }
  }
}

Configurare il riavvio automatico

Ricaricamento rapido può riavviare automaticamente il processo dell'app quando viene apportata una modifica non supportata (detta anche modifica scortese), anziché terminare l'intera sessione di debug. Per abilitare questa operazione, modificare il file di progetto per aggiungere la dichiarazione di proprietà seguente.

<PropertyGroup>
  <HotReloadAutoRestart>true</HotReloadAutoRestart>
</PropertyGroup>

È anche possibile impostare questa proprietà in un file Directory.Build.props . Il riavvio automatico funziona per i tipi di progetto in cui un riavvio rapido del processo è fattibile (ad esempio, alcuni progetti Aspira o Web), in modo da poter continuare il debug con un'interruzione minima.

Si tratta di un riavvio basato su processo. Ad esempio, se si esegue il debug di diversi progetti, vengono ricompilati e riavviati solo i progetti modificati e tutti i progetti dipendenti.

Configurare Ricaricamento rapido per Razor

Eseguendo il cohosting del compilatore Razor all'interno del processo Roslyn, la modifica di un file .razor durante Ricaricamento rapido è più veloce ed efficiente. Il cohosting migliora anche l'affidabilità complessiva quando si usano Ricaricamento rapido.

Per abilitare il cohosting, selezionare Strumenti>Opzioni e quindi cercare cohost. Selezionare o deselezionare l'impostazione Usa il server Cohost Roslyn per Razor (richiede il riavvio). Se si abilita questa opzione, riavviare Visual Studio. Il cohosting è abilitato per impostazione predefinita.

Per informazioni sulla risoluzione dei problemi, vedere Scrivere ed eseguire il debug del codice in esecuzione con Ricaricamento rapido in Visual Studio.

Arrestare le modifiche al codice

Durante l'applicazione delle modifiche al codice tramite Ricaricamento rapido, è possibile arrestare l'operazione.

Attenzione

L'arresto delle modifiche al codice gestito può produrre risultati imprevisti. L'applicazione di modifiche al codice gestito è in genere un processo rapido, quindi raramente è necessario arrestare le modifiche al codice gestito.

Per interrompere l'applicazione delle modifiche al codice:

  • Scegliere Interrompi applicazione di modifiche al codice dal menu Debug .

    Questa voce di menu è visibile solo quando vengono applicate modifiche al codice.

    Se si sceglie questa opzione, non viene eseguito il commit delle modifiche al codice.