Distribuire applicazioni .NET nei computer a scheda singola ARM
La distribuzione di app .NET in computer a scheda singola è identica a quella di qualsiasi altra piattaforma. L'app può essere eseguita in modalità di distribuzione indipendente o dipendente dal framework. Esistono vantaggi per ogni strategia. Per altre informazioni, vedere Panoramica della pubblicazione di applicazioni .NET.
Pubblicazione di un'app dipendente dal framework
Per distribuire l'app come app dipendente dal framework, completare la procedura seguente:
Verificare che SSH sia abilitato nel dispositivo. Per Raspberry Pi, vedere Configurazione di un server SSH nella documentazione di Raspberry Pi.
Installare .NET nel dispositivo usando gli script dotnet-install. Completare i passaggi seguenti da un prompt di Bash nel dispositivo (locale o SSH):
Eseguire il comando seguente per installare .NET:
curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --channel STS
Nota
In questo modo viene installata la versione più recente. Se è necessaria una versione specifica, sostituire il parametro
--channel STS
con--version <VERSION>
, dove<VERSION>
è la versione di compilazione specifica.Per semplificare la risoluzione del percorso, aggiungere una variabile di ambiente
DOTNET_ROOT
e aggiungere la directory .dotnet a$PATH
con i comandi seguenti:echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.bashrc echo 'export PATH=$PATH:$HOME/.dotnet' >> ~/.bashrc source ~/.bashrc
Verificare l'installazione di .NET con il comando seguente:
dotnet --version
Verificare che la versione visualizzata corrisponda a quella installata.
Pubblicare l'app nel computer di sviluppo come indicato di seguito, a seconda dell'ambiente di sviluppo.
- Se si usa Visual Studio, distribuire l'app in una cartella locale. Prima della pubblicazione, selezionare Modifica nel riepilogo del profilo di pubblicazione e selezionare la scheda Impostazioni. Assicurarsi che la Modalità di distribuzione sia impostata su Dipendente dal framework e che il Runtime di destinazione sia impostato su Portabile.
- Se si usa l'interfaccia della riga di comando di .NET, usare il comando dotnet publish. Non sono necessari argomenti aggiuntivi.
Usando un client SFTP come
scp
, copiare i file dal percorso di pubblicazione nel computer di sviluppo in una nuova cartella nell'SBC.Ad esempio, per usare il comando
scp
per copiare i file dal computer di sviluppo all'SBC, aprire un prompt dei comandi ed eseguire quanto segue:scp -r /publish-location/* pi@raspberrypi:/home/pi/deployment-location/
Dove:
- L'opzione
-r
indica ascp
di copiare i file in modo ricorsivo. - /publish-location/ è la cartella in cui è stata effettuata la pubblicazione in nel passaggio precedente.
pi@raspberypi
rappresenta i nomi utente e host nel formato<username>@<hostname>
.- /home/pi/deployment-location/ è la nuova cartella nell'SBC.
Suggerimento
Le versioni recenti di Windows includono OpenSSH, che include
scp
preinstallato.- L'opzione
Da un prompt di Bash sul dispositivo (locale o SSH), eseguire l'app. A tale scopo, impostare la cartella di distribuzione come directory corrente ed eseguire il comando seguente (dove HelloWorld.dll è il punto di ingresso dell'app):
dotnet HelloWorld.dll
Distribuzione di un'app autonoma
Per distribuire l'app come app autonoma, completare la procedura seguente:
Verificare che SSH sia abilitato nel dispositivo. Per Raspberry Pi, vedere Configurazione di un server SSH nella documentazione di Raspberry Pi.
Pubblicare l'app nel computer di sviluppo come indicato di seguito, a seconda dell'ambiente di sviluppo.
Se si usa Visual Studio, distribuire l'app in una cartella locale. Prima della pubblicazione, selezionare Modifica nel riepilogo del profilo di pubblicazione e selezionare la scheda Impostazioni. Assicurarsi che la Modalità di distribuzione sia impostata su Indipendente e che il Runtime di destinazione sia impostato su linux-arm64.
Se si usa l'interfaccia della riga di comando di .NET, usare il comando dotnet publish con gli argomenti
--runtime linux-arm64
e--self-contained
:dotnet publish --runtime linux-arm64 --self-contained
Importante
Se si usa un sistema operativo a 32 bit, è necessario specificare come destinazione il runtime
linux-arm
.Usando un client SFTP come
scp
, copiare i file dal percorso di pubblicazione nel computer di sviluppo in una nuova cartella nell'SBC.Ad esempio, per usare il comando
scp
per copiare i file dal computer di sviluppo all'SBC, aprire un prompt dei comandi ed eseguire quanto segue:scp -r /publish-location/* pi@raspberrypi:/home/pi/deployment-location/
Dove:
- L'opzione
-r
indica ascp
di copiare i file in modo ricorsivo. - /publish-location/ è la cartella in cui è stata effettuata la pubblicazione in nel passaggio precedente.
pi@raspberypi
rappresenta i nomi utente e host nel formato<username>@<hostname>
.- /home/pi/deployment-location/ è la nuova cartella nell'SBC.
Suggerimento
Le versioni recenti di Windows includono OpenSSH, che include
scp
preinstallato.- L'opzione
Da un prompt di Bash sul dispositivo (locale o SSH), eseguire l'app. A tale scopo, impostare la directory corrente sul percorso di distribuzione e completare i passaggi seguenti:
Concedere all'eseguibile l'autorizzazione di esecuzione (dove
HelloWorld
è il nome del file eseguibile).chmod +x HelloWorld
Eseguire il file eseguibile.
./HelloWorld