Raspberry Pi와 같은 ARM 기반 SCC에서 실행되는 .NET 앱을 디버깅하면 고유한 문제가 발생합니다. 원하는 경우 디바이스에 Visual Studio Code 및 .NET SDK를 설치하고 로컬로 개발할 수 있습니다. 그러나 디바이스의 성능은 로컬로 코딩 및 디버깅하는 것이 이상적이지 않습니다. 또한 C#의 Visual Studio Code 확장은 32비트 ARM 운영 체제와 호환되지 않습니다. 따라서 ARM 디바이스의 Visual Studio Code IntelliSense 및 디버깅과 같은 기능은 64비트 시스템에서만 지원됩니다.
이러한 이유로 개발 컴퓨터에서 앱을 개발한 다음 원격 디버깅을 위해 디바이스에 앱을 배포하는 것이 좋습니다. 디바이스에서 로컬로 개발하고 디버그하려면 다음이 필요합니다.
- Raspberry Pi OS(64비트)와 같은 데스크톱 환경이 있는 64비트 OS.
-
Visual Studio Code와 C# 확장과 함께.
- 하드웨어 가속을 사용하지 않도록 설정합니다.
- .NET SDK 10 이상.
-
프레임워크 종속 배포에서와 같이dotnet-install 스크립트를 사용하여 설치합니다. 환경 변수를
DOTNET_ROOT추가하고 .dotnet 디렉터리를 에 추가해야 합니다$PATH.
-
프레임워크 종속 배포에서와 같이dotnet-install 스크립트를 사용하여 설치합니다. 환경 변수를
이 문서의 나머지 부분에는 개발 컴퓨터에서 원격으로 단일 보드 컴퓨터에서 .NET 앱을 디버그하는 방법에 대해 설명합니다.
Visual Studio Code에서 크로스 플랫폼 디버깅
Visual Studio Code 단일 보드 컴퓨터에서 .NET 디버깅하려면 SBC 및 프로젝트의 launch.json 파일에 대한 구성 단계가 필요합니다.
SBC에서 SSH 사용
SSH는 원격 디버깅에 필요합니다. Raspberry Pi에서 SSH를 사용하도록 설정하려면 Raspberry Pi 설명서에서 SSH 사용을 참조하세요. 암호 없는 SSH를 구성해야 합니다.
중요합니다
이 예제에서는 OpenSSH가 명령줄에서 암호 전달을 지원하지 않으므로 디바이스에서 암호 없는 SSH 를 구성해야 합니다. 암호를 사용해야 하는 경우 ssh용 Plink 도구를 대체하는 것이 좋습니다.
SBC에 Visual Studio 원격 디버거 설치
SBC의 Bash 콘솔 내에서(로컬 세션 또는 SSH를 통해) 다음 명령을 실행합니다. 이 명령은 디바이스에 Visual Studio 원격 디버거를 다운로드하고 설치합니다.
curl -sSL https://aka.ms/getvsdbgsh | /bin/sh /dev/stdin -v latest -l ~/vsdbg
Visual Studio Code의 launch.json 설정하기
개발 컴퓨터에서 프로젝트의 launch.json시작 구성을 추가합니다. 프로젝트에
launch.json 새 구성은 다음 중 하나와 유사해야 합니다.
"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"
}
},
다음 사항을 확인합니다.
-
program는dotnet publish에서 만든 실행 파일입니다. -
cwd는 디바이스에서 앱을 시작할 때 사용할 작업 디렉터리입니다. -
pipeProgram는 로컬 컴퓨터에서 SSH 클라이언트의 경로입니다. -
pipeArgs는 SSH 클라이언트에 전달할 매개 변수입니다. 암호 매개 변수뿐만 아니라pi사용자 형식을<user>@<hostname>지정해야 합니다.
앱 배포하기
에 설명된 대로 .NET 앱을 배포합니다 ARM 단일 보드 컴퓨터에. 배포 경로가 cwd 구성의 매개 변수에 지정된 경로와 동일한지 확인합니다.
디버거 시작
Visual Studio Code 런 및 디버그 탭에서 launch.json에 추가한 구성을 선택하고 디버깅 시작 선택합니다. 앱이 디바이스에서 시작됩니다. 디버거를 사용하여 중단점을 설정하고, 로컬을 검사하는 등의 작업을 할 수 있습니다.
Windows에서 Visual Studio로 디버깅
Visual Studio SSH를 통해 원격 디바이스에서 .NET 앱을 디버그할 수 있습니다. 디바이스에 특수한 구성이 필요하지 않습니다. Visual Studio를 사용하여 .NET을 원격으로 디버그하는 방법에 대한 자세한 내용은 SSH를 사용하여 Linux에서 .NET 원격 디버그를 참조하세요.
프레임워크 종속 배포를 디버깅할 때 반드시 dotnet 프로세스를 선택하십시오. 그렇지 않으면 프로세스의 이름이 앱의 실행 파일과 동일하게 지정됩니다.
.NET