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

Animated GIF showing a diagram of framework-dependent deployment. The SDK creates the assemblies, which require the .NET runtime on the target device.

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
      

      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.

    2. 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
      
    3. Verificare l'installazione di .NET con il comando seguente:

      dotnet --version
      

      Verificare che la versione visualizzata corrisponda a quella 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 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 a scp 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.

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

Animated GIF showing a diagram of self-contained deployment. The SDK creates the assemblies bundled with the .NET runtime. Consequently, there are no dependencies required on the target device.

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.

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

  3. 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 a scp 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.

  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. Eseguire il file eseguibile.

      ./HelloWorld