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#.
- Zakažte hardwarovou akceleraci.
- .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$PATH
adresáře .dotnet .
- Nainstalujte pomocí skriptu dotnet-install jako v nasazení závislém na rozhraní. Nezapomeňte přidat proměnnou
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 pro SSH.
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ástrojemdotnet 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 ipi
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 cwd
v 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.