Delen via


.NET-apps implementeren op ARM-computers met één bord

De implementatie van .NET-apps op computers met één bord is identiek aan die van elk ander platform. Uw app kan worden uitgevoerd als zelfstandige of frameworkafhankelijke implementatiemodi. Er zijn voordelen voor elke strategie. Zie het overzicht van het publiceren van .NET-toepassingen voor meer informatie.

Een frameworkafhankelijke app implementeren

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

Voer de volgende stappen uit om uw app te implementeren als een frameworkafhankelijke app:

  1. Zorg ervoor dat SSH is ingeschakeld op uw apparaat. Raadpleeg voor Raspberry Pi het instellen van een SSH-server in de Raspberry Pi-documentatie.

  2. Installeer .NET op het apparaat met behulp van de dotnet-install-scripts. Voer de volgende stappen uit vanaf een Bash-prompt op het apparaat (lokaal of SSH):

    1. Voer de volgende opdracht uit om .NET te installeren:

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

      Notitie

      Hiermee wordt de nieuwste versie geïnstalleerd. Als u een specifieke versie nodig hebt, vervangt u de --channel STS parameter door --version <VERSION>, waar <VERSION> is de specifieke buildversie.

    2. Als u de padomzetting wilt vereenvoudigen, voegt u een DOTNET_ROOT omgevingsvariabele toe en voegt u de map .dotnet toe aan $PATH met de volgende opdrachten:

      echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.bashrc
      echo 'export PATH=$PATH:$HOME/.dotnet' >> ~/.bashrc
      source ~/.bashrc
      
    3. Controleer de .NET-installatie met de volgende opdracht:

      dotnet --version
      

      Controleer of de weergegeven versie overeenkomt met de versie die u hebt geïnstalleerd.

  3. Publiceer de app als volgt op de ontwikkelcomputer, afhankelijk van de ontwikkelomgeving.

    • Als u Visual Studio gebruikt, implementeert u de app in een lokale map. Voordat u gaat publiceren, selecteert u Bewerken in de samenvatting van het publicatieprofiel en selecteert u het tabblad Instellingen. Zorg ervoor dat de implementatiemodus is ingesteld op Frameworkafhankelijk en doelruntime is ingesteld op Portable.
    • Als u de .NET CLI gebruikt, gebruikt u de opdracht dotnet publish . Er zijn geen extra argumenten vereist.
  4. Kopieer met behulp van een SFTP-client als scpvolgt de bestanden van de publicatielocatie op de ontwikkelcomputer naar een nieuwe map op de SBC.

    Als u bijvoorbeeld de scp opdracht wilt gebruiken om bestanden van de ontwikkelcomputer naar uw SBC te kopiëren, opent u een opdrachtprompt en voert u het volgende uit:

    scp -r /publish-location/* pi@raspberrypi:/home/pi/deployment-location/
    

    Hierin:

    • De -r optie geeft aan scp om bestanden recursief te kopiëren.
    • /publish-location/ is de map waarnaar u in de vorige stap hebt gepubliceerd.
    • pi@raspberypi is de gebruikers- en hostnamen in de indeling <username>@<hostname>.
    • /home/pi/deployment-location/ is de nieuwe map op de SBC.

    Tip

    Recente versies van Windows hebben OpenSSH, waaronder scpvooraf geïnstalleerd.

  5. Voer de app uit vanuit een Bash-prompt op de Raspberry Pi (lokaal of SSH). Hiervoor stelt u de implementatiemap in als de huidige map en voert u de volgende opdracht uit (waarbij HelloWorld.dll het toegangspunt van de app is):

    dotnet HelloWorld.dll
    

Een zelfstandige app implementeren

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.

Voer de volgende stappen uit om uw app te implementeren als een zelfstandige app:

  1. Zorg ervoor dat SSH is ingeschakeld op uw apparaat. Raadpleeg voor Raspberry Pi het instellen van een SSH-server in de Raspberry Pi-documentatie.

  2. Publiceer de app als volgt op de ontwikkelcomputer, afhankelijk van de ontwikkelomgeving.

    • Als u Visual Studio gebruikt, implementeert u de app in een lokale map. Voordat u gaat publiceren, selecteert u Bewerken in de samenvatting van het publicatieprofiel en selecteert u het tabblad Instellingen. Zorg ervoor dat de implementatiemodus is ingesteld op Zelfstandig en doelruntime is ingesteld op linux-arm64.

    • Als u de .NET CLI gebruikt, gebruikt u de opdracht dotnet publish met de --runtime linux-arm64 en --self-contained argumenten:

      dotnet publish --runtime linux-arm64 --self-contained
      

    Belangrijk

    Als u een 32-bits besturingssysteem gebruikt, moet u zich richten op de linux-arm runtime.

  3. Kopieer met behulp van een SFTP-client als scpvolgt de bestanden van de publicatielocatie op de ontwikkelcomputer naar een nieuwe map op de SBC.

    Als u bijvoorbeeld de scp opdracht wilt gebruiken om bestanden van de ontwikkelcomputer naar uw SBC te kopiëren, opent u een opdrachtprompt en voert u het volgende uit:

    scp -r /publish-location/* pi@raspberrypi:/home/pi/deployment-location/
    

    Hierin:

    • De -r optie geeft aan scp om bestanden recursief te kopiëren.
    • /publish-location/ is de map waarnaar u in de vorige stap hebt gepubliceerd.
    • pi@raspberypi is de gebruikers- en hostnamen in de indeling <username>@<hostname>.
    • /home/pi/deployment-location/ is de nieuwe map op de SBC.

    Tip

    Recente versies van Windows hebben OpenSSH, waaronder scpvooraf geïnstalleerd.

  4. Voer de app uit vanaf een Bash-prompt op het apparaat (lokaal of SSH). Hiervoor stelt u de huidige map in op de implementatielocatie en voert u de volgende stappen uit:

    1. Geef de uitvoerbare uitvoermachtiging (de naam van HelloWorld het uitvoerbare bestand).

      chmod +x HelloWorld
      
    2. Voer het uitvoerbare bestand uit.

      ./HelloWorld