Condividi tramite


Distribuire app .NET su 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 autonoma o dipendente dal framework. Esistono vantaggi per ogni strategia. Per altre informazioni, vedere Panoramica della pubblicazione di applicazioni .NET.

Distribuzione di un'app dipendente dal framework

GIF animata che mostra un diagramma della distribuzione dipendente dal framework. L'SDK crea gli assembly che richiedono il runtime .NET nel dispositivo di destinazione.

Per distribuire l'app come app dipendente dal framework, completare la procedura seguente:

  1. Verificare che SSH sia abilitato nel dispositivo. Per Raspberry Pi, vedere Configurazione di un server SSH nella documentazione di Raspberry Pi.

  2. Installare .NET nel dispositivo usando gli script dotnet-install. Completare i passaggi seguenti da un prompt di Bash nel dispositivo (locale o SSH):

    1. Eseguire il comando seguente per installare .NET:

      curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --channel STS
      

      Annotazioni

      Questo comando installa la versione più recente. Se è necessaria una versione specifica, sostituire il --channel STS parametro con --version <VERSION>, dove <VERSION> è la versione di compilazione specifica, ad esempio 8.0.404. Per un elenco delle versioni, vedere .NET SDK per Visual Studio. Per determinare il numero di build completo, vedere la colonna Visual Studio 2026 SDK .

    2. Per semplificare la risoluzione del percorso, aggiungere una DOTNET_ROOT variabile di ambiente 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
      
    3. Verificare l'installazione di .NET con il comando seguente:

      dotnet --version
      

      Verificare che la versione visualizzata corrisponda alla versione installata.

  3. 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.
  4. Usando un client SFTP come scp, copiare i file dal percorso di pubblicazione nel computer di sviluppo in una nuova cartella nel SBC.

    Ad esempio, per usare il scp comando per copiare i file dal computer di sviluppo al 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 scp di copiare i file in modo ricorsivo.
    • /publish-location/ è la cartella in cui hai pubblicato nel passaggio precedente.
    • pi@raspberrypi è il nome utente e host nel formato <username>@<hostname>.
    • /home/pi/deployment-location/ è la nuova cartella nel SBC.

    Suggerimento

    Le versioni recenti di Windows includono OpenSSH, che include scp, preinstallato.

  5. Da un prompt di Bash in Raspberry Pi (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 indipendente

GIF animata che mostra un diagramma della distribuzione autonoma. L'SDK crea gli assembly in bundle con il runtime .NET. Di conseguenza, non sono necessarie dipendenze nel dispositivo di destinazione.

Per distribuire l'app come app autonoma, completare la procedura seguente:

  1. Verificare che SSH sia abilitato nel dispositivo. Per Raspberry Pi, vedere Configurazione di un server SSH nella documentazione di Raspberry Pi.

  2. 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.

    • Usando l'interfaccia della riga di comando .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 linux-arm runtime.

  3. Usando un client SFTP come scp, copiare i file dal percorso di pubblicazione nel computer di sviluppo in una nuova cartella nel SBC.

    Ad esempio, per usare il scp comando per copiare i file dal computer di sviluppo al 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 scp di copiare i file in modo ricorsivo.
    • /publish-location/ è la cartella in cui hai pubblicato nel passaggio precedente.
    • pi@raspberrypi è il nome utente e host nel formato <username>@<hostname>.
    • /home/pi/deployment-location/ è la nuova cartella nel SBC.

    Suggerimento

    Le versioni recenti di Windows includono OpenSSH, che include scp, preinstallato.

  4. 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:

    1. Concedere all'eseguibile l'autorizzazione di esecuzione (dove HelloWorld è il nome del file eseguibile).

      chmod +x HelloWorld
      
    2. Avvia il file eseguibile.

      ./HelloWorld