Eseguire il debug di applicazioni .NET nei computer a scheda singola ARM
Articolo
Il debug di applicazioni .NET in esecuzione su SBC basati su ARM come Raspberry Pi presenta una sfida unica. Se si vuole, è possibile installare Visual Studio Code e .NET SDK nel dispositivo e procedere allo sviluppo in locale. Tuttavia, le prestazioni del dispositivo sono tali che la codifica e il debug in locale non sono ideali. Inoltre, l'estensione di Visual Studio Code per C# non è compatibile con i sistemi operativi ARM a 32 bit. Di conseguenza, le funzionalità come IntelliSense e il debug in Visual Studio Code nei dispositivi ARM sono supportate solo nei sistemi a 64 bit.
Per tali motivi, è consigliabile sviluppare l'applicazione in un computer dedicato e successivamente distribuirla nel dispositivo per il debug remoto. Se si vuole sviluppare ed eseguire il debug in locale nel dispositivo, è necessario quanto segue:
Un sistema operativo a 64 bit con un ambiente desktop, ad esempio Raspberry Pi OS (64 bit).
Procedere all’installazione usando lo script dotnet-installcome in una distribuzione dipendente dal framework. Assicurarsi di aggiungere una variabile di ambiente DOTNET_ROOT e aggiungere la directory .dotnet a $PATH.
Il resto di questo articolo descrive come eseguire il debug di app .NET in computer a scheda singola in remoto da un computer di sviluppo.
Importante
A partire da questo articolo, il debug remoto delle app .NET 7 negli ambienti linux-arm non è affidabile e può causare la chiusura prematura del processo. Questo problema è in fase di indagine. Le app .NET 6 destinate a linux-arm e le app .NET 7 destinate a linux-arm64 non ne sono interessate.
Eseguire il debug da Visual Studio Code (multipiattaforma)
Il debug di .NET in computer a scheda singola da Visual Studio Code richiede passaggi di configurazione per SBC e nel file di launch.jsondel progetto.
Questo esempio richiede di configurare SSH senza password nel dispositivo, perché OpenSSH non supporta il passaggio di password nella riga di comando. Se è necessario usare una password, è consigliabile sostituire lo strumento Plink per ssh.
Installare il Visual Studio Remote Debugger in SBC
All'interno di una console Bash in SBC (in una sessione locale o tramite SSH), eseguire il comando seguente. Questo comando scarica e installa il Visual Studio Remote Debugger nel dispositivo:
Nel computer di sviluppo aggiungere una configurazione di avvio al launch.json del progetto. Se il progetto non dispone di un file launch.json, aggiungerne uno passando alla scheda Esegui, selezionando prima Crea un file launch.json e successivamente .NET o .NET Core nella finestra di dialogo.
La nuova configurazione in launch.json dovrebbe essere simile a una delle seguenti:
program è il file eseguibile creato da dotnet publish.
cwd è la directory di lavoro da usare quando si avvia l'app nel dispositivo.
pipeProgram è il percorso di un client SSH nel computer locale.
pipeArgs sono i parametri da passare al client SSH. Assicurarsi di specificare il parametro password, nonché l'utente pi nel formato <user>@<hostname>.
program è il percorso del runtime .NET nel dispositivo.
args è il percorso dell'assembly di cui eseguire il debug nel dispositivo.
cwd è la directory di lavoro da usare quando si avvia l'app nel dispositivo.
justMyCode è impostato su false far sì che il debugger si interrompa sui punti di interruzione nel codice dell'app.
pipeProgram è il percorso di un client SSH nel computer locale.
pipeArgs sono i parametri da passare al client SSH. Assicurarsi di specificare il parametro password, nonché l'utente pi nel formato <user>@<hostname>.
Distribuire l'app
Distribuire l'applicazione come descritto in Distribuire app .NET in computer ARM a scheda singola. Verificare che il percorso di distribuzione sia lo stesso specificato nel parametro cwd della configurazione launch.json.
Avviare il debugger
In Visual Studio Code, nella scheda Esegui ed effettua il debug selezionare la configurazione aggiunta a launch.json e selezionare Avvia debug. L'app viene avviata nel dispositivo. Il debugger può essere utilizzato per impostare punti di interruzione, controllare le variabili locali e altro ancora.
Eseguire il debug da Visual Studio in Windows
Visual Studio può eseguire il debug di app .NET in dispositivi remoti tramite SSH. Non è necessaria alcuna configurazione particolare nel dispositivo. Per informazioni dettagliate sull'uso di Visual Studio per il debug remoto di .NET, vedere Eseguire il debug remoto di .NET in Linux tramite SSH.
Assicurarsi di selezionare il processo dotnet se si esegue il debug di una distribuzione dipendente dal framework. In caso contrario, il processo verrà denominato come l'eseguibile dell'app.
Collabora con noi su GitHub
L'origine di questo contenuto è disponibile in GitHub, in cui è anche possibile creare ed esaminare i problemi e le richieste pull. Per ulteriori informazioni, vedere la guida per i collaboratori.
Feedback su .NET
.NET è un progetto di open source. Selezionare un collegamento per fornire feedback:
Formazione pratica su come distribuire ed eseguire il debug remoto di app ASP.NET Core direttamente in Servizio app di Azure usando Visual Studio 2022.
Progettare soluzioni end-to-end in Microsoft Azure per creare Funzioni di Azure, implementare e gestire app Web, sviluppare soluzioni che usano Archiviazione di Azure e altro ancora.