Bereitstellen von .NET-Apps auf ARM-Single-Board-Computern

Die Bereitstellung von .NET-Apps auf Single-Board-Computern ist identisch mit der für andere Plattformen. Ihre App kann im eigenständigen oder frameworkabhängigen Bereitstellungsmodus ausgeführt werden. Jeder Ansatz bringt seine eigenen Vorteile mit sich. Weitere Informationen finden Sie in der Übersicht über die .NET-Anwendungsveröffentlichung.

Bereitstellen einer frameworkabhängigen App

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

Befolgen Sie diese Schritte, um Ihre App frameworkabhängig bereitzustellen:

  1. Stellen Sie sicher, dass SSH auf Ihrem Gerät aktiviert ist. Für Raspberry Pi: Lesen Sie Einrichten eines SSH-Servers in der Dokumentation zu Raspberry Pi.

  2. Installieren Sie .NET auf dem Gerät mithilfe von dotnet-install-Skripts. Führen Sie folgende Schritte über eine Bash-Eingabeaufforderung auf dem Gerät (lokal oder SSH) durch:

    1. Führen Sie den folgenden Befehl aus, um .NET zu installieren:

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

      Hinweis

      So wird die aktuelle Version installiert. Wenn Sie eine bestimmte Version benötigen, ersetzen Sie den Parameter --channel STS durch --version <VERSION>. Hierbei entspricht <VERSION> der jeweiligen Buildversion.

    2. Sie können die Pfadauflösung vereinfachen, indem Sie die Umgebungsvariable DOTNET_ROOT und das Verzeichnis .dotnet mit den folgenden Befehlen zu $PATH hinzufügen:

      echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.bashrc
      echo 'export PATH=$PATH:$HOME/.dotnet' >> ~/.bashrc
      source ~/.bashrc
      
    3. Überprüfen Sie die .NET-Installation mit dem folgenden Befehl:

      dotnet --version
      

      Vergewissern Sie sich, dass die angezeigte Version der installierten Version entspricht.

  3. Veröffentlichen Sie die App wie folgt auf dem Entwicklungscomputer. Dabei gibt es je nach Entwicklungsumgebung Unterschiede:

    • Wenn Sie Visual Studio verwenden, müssen Sie die App in einem lokalen Ordner bereitstellen. Wählen Sie vor der Veröffentlichung die Option Bearbeiten in der Zusammenfassung des Veröffentlichungsprofils aus, und wechseln Sie zur Registerkarte Einstellungen. Vergewissern Sie sich dort, dass der Bereitstellungsmodus auf Frameworkabhängig und die Zielruntime auf Portierbar festgelegt ist.
    • Verwenden Sie in der .NET-CLI den Befehl dotnet publish. Es sind keine zusätzlichen Argumente erforderlich.
  4. Kopieren Sie die Dateien mithilfe eines SFTP-Clients wie scp vom Veröffentlichungsort auf dem Entwicklungscomputer in einen neuen Ordner auf dem SBC.

    Um zum Beispiel mit dem scp-Befehl Dateien vom Entwicklungscomputer auf den SBC zu kopieren, öffnen Sie eine Eingabeaufforderung und führen Sie den folgenden Befehl aus:

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

    Hierbei gilt:

    • Die -r-Option weist scp an, Dateien rekursiv zu kopieren.
    • /publish-location/ ist der Ordner, in dem Sie im vorherigen Schritt veröffentlicht haben.
    • pi@raspberypi ist der Benutzer- und Hostname im Format <username>@<hostname>.
    • /home/pi/deployment-location/ ist der neue Ordner auf dem SBC.

    Tipp

    Aktuelle Versionen von Windows haben OpenSSH, das scp enthält, vorinstalliert.

  5. Führen Sie die App über eine Bash-Eingabeaufforderung auf dem Raspberry Pi-Gerät (lokal oder SSH) aus. Legen Sie hierfür den Bereitstellungsordner als aktuelles Verzeichnis fest, und führen Sie den folgenden Befehl aus, bei dem HelloWorld.dll den Einstiegspunkt der App darstellt:

    dotnet HelloWorld.dll
    

Bereitstellen einer eigenständigen App

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.

Befolgen Sie diese Schritte, um eine eigenständige App bereitzustellen:

  1. Stellen Sie sicher, dass SSH auf Ihrem Gerät aktiviert ist. Für Raspberry Pi: Lesen Sie Einrichten eines SSH-Servers in der Dokumentation zu Raspberry Pi.

  2. Veröffentlichen Sie die App wie folgt auf dem Entwicklungscomputer. Dabei gibt es je nach Entwicklungsumgebung Unterschiede:

    • Wenn Sie Visual Studio verwenden, müssen Sie die App in einem lokalen Ordner bereitstellen. Wählen Sie vor der Veröffentlichung die Option Bearbeiten in der Zusammenfassung des Veröffentlichungsprofils aus, und wechseln Sie zur Registerkarte Einstellungen. Vergewissern Sie sich dort, dass der Bereitstellungsmodus auf Eigenständig und die Zielruntime auf linux-arm64 festgelegt ist.

    • Verwenden Sie in der .NET-CLI den Befehl dotnet publish mit den Argumenten --runtime linux-arm64 und --self-contained:

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

    Wichtig

    Wenn Sie ein 32-Bit-Betriebssystem verwenden, müssen Sie die linux-arm-Runtime als Ziel festlegen.

  3. Kopieren Sie die Dateien mithilfe eines SFTP-Clients wie scp vom Veröffentlichungsort auf dem Entwicklungscomputer in einen neuen Ordner auf dem SBC.

    Um zum Beispiel mit dem scp-Befehl Dateien vom Entwicklungscomputer auf den SBC zu kopieren, öffnen Sie eine Eingabeaufforderung und führen Sie den folgenden Befehl aus:

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

    Hierbei gilt:

    • Die -r-Option weist scp an, Dateien rekursiv zu kopieren.
    • /publish-location/ ist der Ordner, in dem Sie im vorherigen Schritt veröffentlicht haben.
    • pi@raspberypi ist der Benutzer- und Hostname im Format <username>@<hostname>.
    • /home/pi/deployment-location/ ist der neue Ordner auf dem SBC.

    Tipp

    Aktuelle Versionen von Windows haben OpenSSH, das scp enthält, vorinstalliert.

  4. Führen Sie die App über eine Bash-Eingabeaufforderung auf dem Gerät (lokal oder SSH) aus. Legen Sie hierfür das aktuelle Verzeichnis auf den Bereitstellungsort fest, und führen Sie die folgenden Schritte durch:

    1. Erteilen Sie die execute-Berechtigung für ausführbare Dateien. Hierbei entspricht HelloWorld dem Namen der ausführbaren Datei.

      chmod +x HelloWorld
      
    2. Führen Sie die ausführbare Datei aus.

      ./HelloWorld