이 전 포스트에서 ASP.NET Core 파일을 라즈베리파이에서 실행할 수 있는 방법에 대해 알아보았습니다.
전 글에서 말했듯이 오늘부터는 파일 실행 시 생길 수 있는 오류에 대해 하나하나 짚어보며 해결하는 방법까지 알아보겠습니다.
먼저 오늘 알아 볼 오류는
PS C:\Users\choyounnng> scp -r "C:/borrowsan/borrow산 우산현황/borrow산 우산현황/bin/Debug/net8.0" siniseong@10.150.149.125:home/siniseong
siniseong@10.150.149.125's password:
C:\Windows\System32\OpenSSH\scp.exe: realpath home/siniseong: No such file
C:\Windows\System32\OpenSSH\scp.exe: upload "home/siniseong": path canonicalization failed
C:\Windows\System32\OpenSSH\scp.exe: failed to upload directory C:/borrowsan/borrow\354\202\260 \354\232\260\354\202\260\355\230\204\355\231\251/borrow\354\202\260 \354\232\260\354\202\260\355\230\204\355\231\251/bin/Debug/net8.0 to home/siniseong
위와 같은 File does not contain a valid CIL image 오류는
보통 파일이 올바른 .NET 실행 파일이 아니거나 컴파일이 제대로 되지 않았을 때 발생합니다.
이 오류를 해결하기 위해서는 아래와 같은 방법들로 해결이 가능합니다.
제가 실제로 해결이 되었던 방법들만 정리해놓겠습니다!
다른 방법들도 많으니 제 방법들로 해결이 안 된다면 구글링하시면 금방 해결될 겁니다!
1. 플랫폼과 아키텍처 호환성 확인
- 제 오류 기준, .exe 파일이 실행하고자 하는 환경의 아키텍처와 맞는지 확인하면 됩니다.
- 만약 x64와 ARM 아키텍처가 다를 수도 있기 때문에 빌드 시 -r 플래그를 사용하여 아키텍처를 지정할 수 있습니다.
dotnet build -r win-x64
2. .NET 런타임 확인
- 라즈베리파이와 같은 원격 장치에서 애플리케이션을 실행하고자 한다면 적절한 .NET 런타임이 설치되어 있어야 합니다.
- 라즈베리파이 터미널에서 설치된 .NET Runtime을 확인하기 위해서는 아래의 명령어를 작성하면 됩니다.
dotnet --list-runtimes
3. 잘못된 파일 형식
- 실행하려는 파일이 실제로 .NET 실행 파일인지 확인합니다.
- 다음 명령어를 통해 실행해 볼 수 있습니다.
dotnet borrow산 우산현황.exe (자신이 실행하고자 하는 파일)
4. 파일 손상 또는 전송 중 오류
- 파일을 scp -r 명령어를 사용하여 전송하던 중 파일이 손상되었을 수 있습니다.
- 파일을 다시 복사하고 전송하여 실행하고자 하는 파일이 맞는지 다시 한 번 확인합니다.
오늘 알아 본 올바른 .NET 파일이 아니거나 컴파일이 제대로 이루어지지 않았을 때 생기는 오류를 위와 같은 방법들로 해결해 보시기 바랍니다!
내일은 또 다른 오류의 해결 방법으로 작성하겠습니다.
오늘도 읽어주셔서 감사합니다!
'Raspberry Pi (라즈베리파이)' 카테고리의 다른 글
라즈베리파이에 Visual Studio Code를 설치하여 편리하게 작업하자! (0) | 2025.04.16 |
---|---|
라즈베리파이에서 ASP.NET Core 실행하기 (2) | 2025.01.25 |
라즈베리파이 화면에 한글을 출력해보자! (0) | 2025.01.24 |
라즈베리파이에서 ASP.NET Core 실행하기 (0) | 2025.01.23 |
라즈베리파이에서 C# 윈폼 실행시키기 (2) | 2025.01.21 |