Raspberry Pi와 같은 ARM 기반 SBC에서 실행되는 .NET 앱을 디버그하는 것은 고유한 과제입니다. 원하는 경우 디바이스에 Visual Studio Code와 .NET SDK를 설치하고 로컬에서 개발할 수 있습니다. 그러나 디바이스의 성능은 로컬에서 코딩 및 디버그하는 것이 이상적이지 않습니다. 또한 C#용 Visual Studio Code 확장은 32비트 ARM 운영 체제와 호환되지 않습니다. 따라서 ARM 디바이스에서 Visual Studio Code의 IntelliSense 및 디버그와 같은 기능은 64비트 시스템에서만 지원됩니다.
이러한 이유로 개발 컴퓨터에서 앱을 개발한 다음 원격 디버깅을 위해 디바이스에 앱을 배포하는 것이 좋습니다. 디바이스에서 로컬로 개발하고 디버그하려면 다음이 필요합니다.
프레임워크 종속 배포에서와 같이dotnet-install 스크립트를 사용하여 설치합니다. DOTNET_ROOT 환경 변수를 추가하고 .dotnet 디렉터리를 $PATH에 추가해야 합니다.
이 문서의 나머지 부분에서는 개발 컴퓨터에서 원격으로 단일 보드 컴퓨터의 .NET 앱을 디버그하는 방법에 대해 설명합니다.
중요
이 문서를 작성하는 시점에서 linux-arm 환경에서 .NET 7 앱을 원격으로 디버그하는 것은 신뢰할 수 없으며 프로세스가 조기에 종료될 수 있습니다. 이 문제는 조사 중입니다. linux-arm을 대상으로 하는 .NET 6 앱과 linux-arm64를 대상으로 하는 .NET 7 앱은 영향을 받지 않습니다.
Visual Studio Code에서 디버그(플랫폼 간)
Visual Studio Code에서 단일 보드 컴퓨터에서 .NET을 디버그하려면 SBC 및 프로젝트의 launch.json 파일에서 구성 단계를 수행해야 합니다.
pipeArgs는 SSH 클라이언트에 전달할 매개 변수입니다. password 매개 변수와 함께 <user>@<hostname> 형식의 pi 사용자를 지정해야 합니다.
앱 배포하기
ARM 단일 보드 컴퓨터에 .NET 앱 배포에 설명된 대로 앱을 배포합니다. 배포 경로가 launch.json 구성의 cwd 매개 변수에 저장된 동일한 경로인지 확인합니다.
디버거 시작
Visual Studio Code의 실행 및 디버그 탭에서 launch.json에 추가한 구성을 선택하고 디버깅 시작을 선택합니다. 앱이 디바이스에서 시작됩니다. 디버거를 사용하여 중단점 설정, 로컬 항목 검사 등의 작업을 수행할 수 있습니다.
Windows의 Visual Studio에서 디버그
Visual Studio는 SSH를 통해 원격 디바이스의 .NET 앱을 디버그할 수 있습니다. 디바이스에서 특수화된 구성이 필요하지 않습니다. Visual Studio를 사용하여 .NET을 원격으로 디버그하는 방법에 관한 자세한 내용은 SSH를 사용하여 Linux의 .NET 원격 디버그를 참조하세요.
프레임워크 종속 배포를 디버깅하는 경우 dotnet 프로세스를 선택해야 합니다. 그렇지 않으면 프로세스 이름이 앱 실행 파일과 동일하게 지정됩니다.
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.