Freigeben über


Debuggen von .NET-Apps auf ARM-Computern mit einem Einzigen Board

Das Debuggen von .NET Apps, die auf ARM-basierten SBCs wie Raspberry Pi ausgeführt werden, stellt eine einzigartige Herausforderung dar. Bei Bedarf können Sie Visual Studio Code und das .NET SDK auf dem Gerät installieren und lokal entwickeln. Die Leistung des Geräts ist jedoch so, dass das Codieren und Debuggen lokal nicht ideal ist. Darüber hinaus ist die Visual Studio Code-Erweiterung für C# nicht kompatibel mit 32-Bit-ARM-Betriebssystemen. Daher werden Funktionen wie IntelliSense und Debugging in Visual Studio Code auf ARM-Geräten nur in 64-Bit-Systemen unterstützt.

Aus diesen Gründen wird dringend empfohlen, Ihre App auf einem Entwicklungscomputer zu entwickeln und die App dann für das Remotedebugging auf dem Gerät bereitzustellen. Wenn Sie lokal auf dem Gerät entwickeln und debuggen möchten, ist Folgendes erforderlich:

Im restlichen Artikel wird beschrieben, wie Sie .NET Apps auf Single-Board-Computern remote von einem Entwicklungscomputer debuggen.

Debuggen von Visual Studio Code (plattformübergreifend)

Für das Debuggen von .NET auf Computern mit einem Board von Visual Studio Code sind Konfigurationsschritte auf dem SBC und in der Datei launch.json des Projekts erforderlich.

Aktivieren von SSH auf dem SBC

SSH ist für das Remotedebugging erforderlich. Informationen zum Aktivieren von SSH auf Raspberry Pi finden Sie in der Raspberry Pi-Dokumentation zum Aktivieren von SSH. Stellen Sie sicher, dass Sie kennwortlose SSH konfiguriert haben.

Von Bedeutung

In diesem Beispiel müssen Sie kennwortlose SSH auf Ihrem Gerät konfigurieren, da OpenSSH das Übergeben von Kennwörtern in der Befehlszeile nicht unterstützt. Wenn Sie ein Kennwort verwenden müssen, erwägen Sie, das Plink-Tool für ssh zu ersetzen.

Installieren Sie den Visual Studio Remotedebugger auf dem SBC

Führen Sie in einer Bash-Konsole auf dem SBC (entweder in einer lokalen Sitzung oder über SSH) den folgenden Befehl aus. Mit diesem Befehl wird der Visual Studio Remotedebugger auf dem Gerät heruntergeladen und installiert:

curl -sSL https://aka.ms/getvsdbgsh | /bin/sh /dev/stdin -v latest -l ~/vsdbg

Einrichten von launch.json in Visual Studio Code

Fügen Sie auf dem Entwicklungscomputer eine Startkonfiguration zur launch.json des Projekts hinzu. Wenn das Projekt nicht über eine launch.jsondatei verfügt, Fügen Sie eine hinzu, indem Sie zur Registerkarte Run wechseln, eine launch.json Datei erstellen und .NET oder .NET Core im Dialogfeld auswählen.

Die neue Konfiguration in launch.json sollte ähnlich wie folgt aussehen:

"configurations": [
    {
        "name": ".NET Remote Launch - Self-contained",
        "type": "coreclr",
        "request": "launch",
        "program": "~/sample/sample",
        "args": [],
        "cwd": "~/sample",
        "stopAtEntry": false,
        "console": "internalConsole",
        "pipeTransport": {
            "pipeCwd": "${workspaceRoot}",
            "pipeProgram": "ssh",
            "pipeArgs": [
                "pi@raspberrypi"
            ],
            "debuggerPath": "~/vsdbg/vsdbg"
        }
    },

Beachten Sie Folgendes:

  • program ist die ausführbare Datei, die von dotnet publish erzeugt wurde.
  • cwd ist das Arbeitsverzeichnis, das beim Starten der App auf dem Gerät verwendet werden soll.
  • pipeProgram ist der Pfad zu einem SSH-Client auf dem lokalen Computer.
  • pipeArgs sind die Parameter, die an den SSH-Client übergeben werden sollen. Achten Sie darauf, den Kennwortparameter sowie den pi Benutzer im Format <user>@<hostname>anzugeben.

Bereitstellen der App

Stellen Sie die App wie in Deploy .NET Apps auf ARM Single-Board-Computern bereit. Stellen Sie sicher, dass der Bereitstellungspfad derselbe Pfad ist, der im Parameter in der cwd konfigurationlaunch.json angegeben ist.

Starten des Debuggers

Wählen Sie in Visual Studio Code auf der Registerkarte Run and Debug die Konfiguration aus, die Sie launch.json hinzugefügt haben, und wählen Sie Start Debugging aus. Die App wird auf dem Gerät gestartet. Der Debugger kann verwendet werden, um Haltepunkte festzulegen, lokale Variablen zu inspizieren und vieles mehr.

Debuggen von Visual Studio auf Windows

Visual Studio können .NET Apps auf Remotegeräten über SSH debuggen. Auf dem Gerät ist keine spezielle Konfiguration erforderlich. Ausführliche Informationen zum .NET Remotedebugging von Visual Studio finden Sie unter Remote debug .NET unter Linux mit SSH.

Achten Sie darauf, den dotnet Prozess auszuwählen, wenn Sie eine frameworkabhängige Bereitstellung debuggen. Andernfalls wird der Prozess genauso benannt wie die ausführbare Datei der App.