Ladění aplikací .NET na počítačích s jednou deskou ARM

Ladění aplikací .NET běžících na sbc založených na ARM, jako je Raspberry Pi, představuje jedinečnou výzvu. V případě potřeby můžete na zařízení nainstalovat Visual Studio Code a sadu .NET SDK a místně vyvíjet. Výkon zařízení je ale takový, že kódování a ladění místně není ideální. Rozšíření Visual Studio Code pro C# navíc není kompatibilní s 32bitovými operačními systémy ARM. V důsledku toho se funkce jako IntelliSense a ladění v editoru Visual Studio Code na zařízeních ARM podporují jenom v 64bitových systémech.

Z těchto důvodů důrazně doporučujeme vyvíjet aplikaci na vývojovém počítači a pak ji nasadit do zařízení pro vzdálené ladění. Pokud chcete vyvíjet a ladit místně na zařízení, je nutné provést následující:

  • 64bitový operační systém s desktopovým prostředím, jako je Raspberry Pi OS (64bitová verze).
  • Visual Studio Code s rozšířením jazyka C#.
  • .NET SDK 6.0 nebo novější.
    • Nainstalujte pomocí skriptu dotnet-install jako v nasazení závislém na rozhraní. Nezapomeňte přidat proměnnou DOTNET_ROOT prostředí a přidat do $PATHadresáře .dotnet .

Zbytek tohoto článku popisuje, jak vzdáleně ladit aplikace .NET na počítačích s jedním panelem z vývojového počítače.

Důležité

Od tohoto psaní je vzdálené ladění aplikací .NET 7 v linux-arm prostředích nespolehlivé a může způsobit předčasné ukončení procesu. Tento problém se zkoumá. Aplikace .NET 6, které cílí linux-arm na aplikace .NET 7, linux-arm64 nejsou ovlivněné.

Ladění z editoru Visual Studio Code (pro různé platformy)

Ladění .NET na jednoúčelových počítačích ze sady Visual Studio Code vyžaduje kroky konfigurace v SBC a v souboru launch.json projektu.

Povolení SSH na SBC

Pro vzdálené ladění se vyžaduje protokol SSH. Pokud chcete povolit SSH na Raspberry Pi, přečtěte si téma Povolení SSH v dokumentaci k Raspberry Pi. Ujistěte se, že jste nakonfigurovali SSH bez hesla.

Důležité

Tento příklad vyžaduje, abyste na zařízení nakonfigurovali SSH bez hesla, protože OpenSSH nepodporuje předávání hesel na příkazovém řádku. Pokud potřebujete použít heslo, zvažte nahrazení nástroje Plink proSSH.

Instalace vzdáleného ladicího programu sady Visual Studio na SBC

V konzole Bash v SBC (buď v místní relaci nebo přes SSH), spusťte následující příkaz. Tento příkaz stáhne a nainstaluje do zařízení vzdálený ladicí program sady Visual Studio:

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

Nastavení launch.json v editoru Visual Studio Code

Na vývojovém počítači přidejte do launch.json projektu spouštěcí konfiguraci. Pokud projekt nemá soubor launch.json , přidejte ho tak, že v dialogovém okně přepnete na kartu Spustit , vyberete launch.json soubor a vyberete .NET nebo .NET Core .

Nová konfigurace v launch.json by měla vypadat nějak takto:

"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"
        }
    },

Všimněte si následujícího:

  • program je spustitelný soubor vytvořený nástrojem dotnet publish.
  • cwd je pracovní adresář, který se má použít při spuštění aplikace na zařízení.
  • pipeProgram je cesta k klientovi SSH na místním počítači.
  • pipeArgs jsou parametry, které se mají předat klientovi SSH. Nezapomeňte zadat parametr hesla i pi uživatele ve formátu <user>@<hostname>.

Nasazení aplikace

Nasaďte aplikaci, jak je popsáno v tématu Nasazení aplikací .NET do počítačů s jednou deskou ARM. Ujistěte se, že je cesta nasazení stejná jako v parametru cwdv konfiguraci launch.json .

Spuštění ladicího programu

V editoru Visual Studio Code na kartě Spustit a ladit vyberte konfiguraci, kterou jste přidali do launch.json , a vyberte Spustit ladění. Aplikace se spustí na zařízení. Ladicí program lze použít k nastavení zarážek, kontrole místních objektů a dalších.

Ladění ze sady Visual Studio ve Windows

Visual Studio může ladit aplikace .NET na vzdálených zařízeních přes SSH. Na zařízení není nutná žádná specializovaná konfigurace. Podrobnosti o vzdáleném ladění .NET pomocí sady Visual Studio najdete v tématu Vzdálené ladění .NET v Linuxu pomocí SSH.

Pokud ladíte nasazení závislé na rozhraní, nezapomeňte proces vybrat dotnet . Jinak se proces pojmenuje stejně jako spustitelný soubor aplikace.