Debug remoto di un progetto C# o Visual Basic in Visual Studio

Per eseguire il debug di un'applicazione di Visual Studio distribuita in un computer diverso, installare ed eseguire gli strumenti remoti nel computer in cui è stata distribuita l'app, configurare il progetto per connettersi al computer remoto da Visual Studio e quindi eseguire l'app.

Screenshot of remote debugger components.

Per informazioni sul debug remoto di app UWP (Universal Windows Apps), vedi Eseguire il debug di un pacchetto di app installato.

Requisiti

Il debugger remoto è supportato in Windows 7 e versioni successive e nelle versioni di Windows Server a partire da Windows Server 2008 Service Pack 2. Per un elenco completo dei requisiti, vedere Requisiti.

Nota

Il debug tra due computer connessi tramite un proxy non è supportato. Il debug su una latenza elevata o una connessione a larghezza di banda ridotta, ad esempio connessione Internet remota o internet tra paesi/aree geografiche non è consigliato e potrebbe non riuscire o essere inaccettabile lento.

Scaricare e installare Remote Tools

Nel dispositivo remoto o nel server in cui si vuole eseguire il debug, anziché nel computer di Visual Studio, scaricare e installare la versione corretta degli strumenti remoti dai collegamenti nella tabella seguente.

  • Scaricare l'aggiornamento più recente degli strumenti remoti per la versione di Visual Studio. Le versioni precedenti degli strumenti remoti non sono compatibili con le versioni successive di Visual Studio. Ad esempio, se si usa Visual Studio 2019, scaricare l'aggiornamento più recente degli strumenti remoti per Visual Studio 2019. In questo scenario non scaricare gli strumenti remoti per Visual Studio 2022.
  • Scaricare gli strumenti remoti con la stessa architettura del computer in cui si stanno installando. Ad esempio, se si vuole eseguire il debug di applicazioni x86 in un computer remoto che esegue un sistema operativo x64, installare gli strumenti remoti x64. Per eseguire il debug di applicazioni x86, ARM o x64 in un sistema operativo ARM64, installare gli strumenti remoti ARM64.
Versione Collega Note
Visual Studio 2022 Remote Tools Compatibile con tutte le versioni di Visual Studio 2022. Scaricare la versione corrispondente al sistema operativo del dispositivo (x86, x64 o ARM64). Nelle versioni precedenti di Windows Server, vedere Sbloccare il download del file per informazioni sul download degli strumenti remoti.
Visual Studio 2019 Remote Tools Compatibile con tutte le versioni di Visual Studio 2019. Scaricare la versione corrispondente al sistema operativo del dispositivo (x86, x64 o ARM64). Nelle versioni precedenti di Windows Server, vedere Sbloccare il download del file per informazioni sul download degli strumenti remoti.
Visual Studio 2017 Remote Tools Compatibile con tutte le versioni di Visual Studio 2017. Scaricare la versione corrispondente al sistema operativo del dispositivo (x86, x64 o ARM64). In Windows Server, vedere Sbloccare il download del file per scaricare gli strumenti remoti.
Visual Studio 2015 Remote Tools Gli strumenti remoti per Visual Studio 2015 sono disponibili da My.VisualStudio.com. Se richiesto, partecipare al programma Visual Studio Dev Essentials gratuito o accedere con l'ID sottoscrizione di Visual Studio. In Windows Server, vedere Sbloccare il download del file per scaricare gli strumenti remoti.
Visual Studio 2013 Remote Tools Pagina di download nella documentazione di Visual Studio 2013
Visual Studio 2012 Remote Tools Pagina di download nella documentazione di Visual Studio 2012
Versione Collega Note
Visual Studio 2019 Remote Tools Compatibile con tutte le versioni di Visual Studio 2019. Scaricare la versione corrispondente al sistema operativo del dispositivo (x86, x64 o ARM64). In Windows Server, vedere Sbloccare il download del file per scaricare gli strumenti remoti. Per la versione più recente degli strumenti remoti, aprire la documentazione di Visual Studio 2022.
Visual Studio 2017 Remote Tools Compatibile con tutte le versioni di Visual Studio 2017. Scaricare la versione corrispondente al sistema operativo del dispositivo (x86, x64 o ARM64). In Windows Server, vedere Sbloccare il download del file per scaricare gli strumenti remoti.
Visual Studio 2015 Remote Tools Gli strumenti remoti per Visual Studio 2015 sono disponibili da My.VisualStudio.com. Se richiesto, partecipare al programma Visual Studio Dev Essentials gratuito o accedere con l'ID sottoscrizione di Visual Studio. In Windows Server, vedere Sbloccare il download del file per scaricare gli strumenti remoti.
Visual Studio 2013 Remote Tools Pagina di download nella documentazione di Visual Studio 2013
Visual Studio 2012 Remote Tools Pagina di download nella documentazione di Visual Studio 2012

È possibile eseguire il debugger remoto copiando msvsmon.exe nel computer remoto, anziché installando gli strumenti remoti. Tuttavia, la Configurazione guidata debugger remoto (rdbgwiz.exe) è disponibile solo quando si installano gli strumenti remoti. Potrebbe essere necessario usare la procedura guidata per la configurazione se si vuole eseguire il debugger remoto come servizio. Per altre informazioni, vedere (Facoltativo) Configurare il debugger remoto come servizio.

Nota

  • Per eseguire il debug di app di Windows 10 o versioni successive nei dispositivi ARM, usare ARM64, disponibile con la versione più recente degli strumenti remoti.
  • Per eseguire il debug delle app di Windows 10 nei dispositivi Windows RT, usare ARM, disponibile solo nel download degli strumenti remoti di Visual Studio 2015.
  • Per eseguire il debug di app x64 in un sistema operativo ARM64, eseguire il msvsmon.exe x64 installato con gli strumenti remoti ARM64.

Suggerimento

In alcuni scenari, può essere più efficiente eseguire il debugger remoto da una condivisione file. Per altre informazioni, vedere Eseguire il debugger remoto da una condivisione file.

Configurare il debugger remoto

  1. Nel computer remoto trovare e avviare Remote Debugger dal menu Start .

    Se non si dispone delle autorizzazioni amministrative nel computer remoto, fare clic con il pulsante destro del mouse sull'app Debugger remoto e scegliere Esegui come amministratore. In caso contrario, inizialo normalmente.

    Se si prevede di connettersi a un processo in esecuzione come amministratore o in esecuzione con un account utente diverso,ad esempio IIS, fare clic con il pulsante destro del mouse sull'app Debugger remoto e selezionare Esegui come amministratore. Per altre informazioni, vedere Eseguire il debugger remoto come amministratore.

  2. La prima volta che si avvia il debugger remoto (o prima di averla configurata), viene visualizzata la configurazione guidata debug remoto.

    Nella maggior parte degli scenari scegliere Avanti fino a visualizzare la pagina Configura Windows Firewall della procedura guidata.

    Screenshot of remote debugger configuration.

    Screenshot of remote debugger configuration.

    Se l'API di Servizi Web Windows non è installata, che si verifica solo in Windows Server 2008 R2, selezionare il pulsante Installa .

  3. Selezionare almeno un tipo di rete su cui si vogliono usare gli strumenti remoti. Se i computer sono connessi tramite un dominio, è necessario scegliere il primo elemento. Se i computer sono connessi tramite un gruppo di lavoro o un gruppo home, scegliere il secondo o il terzo elemento in base alle esigenze.

    Selezionare quindi Fine per avviare il debugger remoto.

    Selezionare quindi Configura debug remoto per avviare il debugger remoto.

  4. Al termine della configurazione, viene visualizzata la finestra Debugger remoto.

    Screenshot of remote debugger window

    Screenshot of remote debugger window

    Il debugger remoto è ora in attesa di una connessione. Usare il nome del server e il numero di porta visualizzati per impostare la configurazione della connessione remota in Visual Studio.

Per arrestare il debugger remoto, selezionare Uscita file>. È possibile riavviarlo dal menu Start o dalla riga di comando:

<Remote debugger installation directory>\msvsmon.exe

Nota

Se è necessario aggiungere autorizzazioni per altri utenti, modificare la modalità di autenticazione o il numero di porta per il debugger remoto, vedere Configurare il debugger remoto.

Eseguire il debug remoto del progetto

Il debugger non può distribuire applicazioni desktop Visual C# o Visual Basic in un computer remoto, ma può comunque eseguirne il debug in modalità remota come illustrato di seguito. La procedura seguente presuppone che si voglia eseguirne il debug in un computer denominato MJO-DL, come illustrato nella figura seguente.

  1. Creare un progetto WPF denominato MyWpf.

    Se si sta provando a eseguire il debug remoto di un'app MAUI invece di WPF, vedere Eseguire il debug remoto di un'app MAUI .NET in Windows.

  2. Impostare un punto di interruzione facilmente raggiungibile nel codice.

    Ad esempio, è possibile impostare un punto di interruzione in un gestore pulsanti. A tale scopo, aprire MainWindow.xaml e aggiungere un controllo Button dalla casella degli strumenti, quindi fare doppio clic sul pulsante per aprire il relativo gestore.

  3. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto e scegliere Proprietà.

  4. Nella pagina Proprietà scegliere la scheda Debug.

    Per i progetti C# destinati a .NET Core o .NET 5+, a partire da Visual Studio 2022, scegliere l'interfaccia utente dei profili di avvio debug dalla scheda Debug per configurare le impostazioni per il debug remoto.

    Screenshot of the Debug launch profile UI in the Visual Studio Project Properties for C# and .NET.

    In caso contrario, modificare le impostazioni di debug remoto direttamente nella scheda Debug .

    Screenshot of the Debug tab in the Visual Studio Project Properties. The Use remote machine property is set to 'MJO-DL:4022'.

  5. Verificare che la casella di testo Directory di lavoro sia vuota.

  6. Scegliere Usa computer remoto e digitare yourmachinename:port nella casella di testo. Il numero di porta viene visualizzato nella finestra del debugger remoto. Il numero di porta incrementa 2 in ogni versione di Visual Studio.

    In questo esempio usare:

    MJO-DL:4026 in Visual Studio 2022

    MJO-DL:4024 in Visual Studio 2019

  7. Assicurarsi che l'opzione Attiva il debug di codice nativo non sia selezionata.

  8. Compilare il progetto.

  9. Creare una cartella nel computer remoto con lo stesso percorso della cartella Debug nel computer di Visual Studio: <percorso> di origine\MyWPF\MyWPF\bin\Debug.

  10. Copiare il file eseguibile appena compilato dal computer di Visual Studio nella cartella appena creata nel computer remoto.

    Attenzione

    Non apportare modifiche al codice o alla ricompilazione oppure ripetere questo passaggio. Il file eseguibile copiato nel computer remoto deve corrispondere esattamente all'origine locale e ai simboli.

    È possibile copiare il progetto manualmente, usare XCopy, Robocopy, PowerShell o altre opzioni.

  11. Assicurarsi che il debugger remoto sia in esecuzione nel computer di destinazione (in caso contrario, cercare Debugger remoto nel menu Start). La finestra del debugger remoto è simile alla seguente.

    Screenshot of remote debugger window for VS 2022.

    Screenshot of remote debugger window for VS 2019.

  12. In Visual Studio avviare il debug (Debug > Avvia debug o F5).

  13. Se richiesto, immettere le credenziali di rete per connettersi al computer remoto.

    Le credenziali necessarie variano a seconda della configurazione di sicurezza della rete. Ad esempio, in un computer di dominio è possibile immettere il nome di dominio e la password. In un computer non di dominio è possibile immettere il nome del computer e un nome di account utente valido, ad esempio MJO-DL\name@something.com, insieme alla password corretta.

    La finestra principale dell'applicazione WPF apparirà aperta nel computer remoto.

  14. Se necessario, intervenire per raggiungere il punto di interruzione. Il punto di interruzione dovrebbe essere attivo. In caso contrario, non sono stati caricati i simboli per l'applicazione. Riprovare e, se non funziona, ottenere informazioni sul caricamento dei simboli e su come risolverli in Informazioni sui file di simboli e sulle impostazioni dei simboli di Visual Studio.

  15. Nel computer di Visual Studio l'esecuzione viene arrestata in corrispondenza del punto di interruzione.

    Se sono presenti file non di codice che devono essere usati dall'applicazione, è necessario includerli nel progetto di Visual Studio. Creare una cartella di progetto per i file aggiuntivi (nella Esplora soluzioni fare clic su Aggiungi > nuova cartella). Aggiungere quindi i file alla cartella (nella Esplora soluzioni fare clic su Aggiungi > elemento esistente e quindi selezionare i file). Nella pagina Proprietà di ogni file impostare Copia nella directory di output su Copia sempre.

Eseguire il debug remoto di un'app MAUI .NET in Windows

Le app MAUI .NET sono app in pacchetto che devono essere registrate durante la distribuzione, non solo copiate in un computer remoto. Per eseguire il debug remoto, è possibile distribuire una versione non in pacchetto dell'app.

Usare uno dei metodi seguenti per eseguire il debug remoto:

  • Pubblicare l'app nel dispositivo remoto come app non in pacchetto usando la procedura descritta in Usare l'interfaccia della riga di comando per pubblicare app MAUI .NET non in pacchetto per Windows e quindi seguire la procedura descritta in questo articolo per eseguire il debug remoto. Ignorare i passaggi per copiare l'app.

  • Seguire i passaggi descritti in questo articolo, inclusi i passaggi per creare un profilo di avvio di debug per il progetto. Prima di avviare il debug, modificare manualmente il file launch Impostazioni.json sostituendo il valore commandNameProject con MsixPackage, come illustrato di seguito.

    "Remote Profile": {
      "commandName": "MsixPackage",
      "remoteDebugEnabled": true,
      "remoteDebugMachine": "170.200.20.22",
      "authenticationMode": "None"
    }
    

    Quando si avvia il debug, questo metodo distribuisce prima una versione non in pacchetto dell'app e la avvia.

    Nota

    Non è possibile modificare l'avvio Impostazioni.json nella finestra di dialogo Debug profilo di avvio dopo aver modificato il valore in MsixPackage.

Configurare il debug con simboli remoti

Dovrebbe essere possibile eseguire il debug del codice con i simboli generati nel computer di Visual Studio. L'uso di simboli locali consente di migliorare notevolmente le prestazioni del debugger remoto. Se è necessario usare simboli remoti, indicare a Remote Debugging Monitor di eseguire la ricerca di simboli nel computer remoto.

È possibile usare l'opzione della riga di comando msvsmon seguente per usare i simboli remoti per il codice gestito: Msvsmon /FallbackLoadRemoteManagedPdbs

Per altre informazioni, vedere la Guida al debug remoto (premere F1 nella finestra del debugger remoto o fare clic su Utilizzo guida>).