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
Befolgen Sie diese Schritte, um Ihre App frameworkabhängig bereitzustellen:
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.
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:
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.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
Überprüfen Sie die .NET-Installation mit dem folgenden Befehl:
dotnet --version
Vergewissern Sie sich, dass die angezeigte Version der installierten Version entspricht.
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.
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 weistscp
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.- Die
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
Befolgen Sie diese Schritte, um eine eigenständige App bereitzustellen:
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.
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.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 weistscp
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.- Die
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:
Erteilen Sie die execute-Berechtigung für ausführbare Dateien. Hierbei entspricht
HelloWorld
dem Namen der ausführbaren Datei.chmod +x HelloWorld
Führen Sie die ausführbare Datei aus.
./HelloWorld