Raspberry Pi (라즈베리파이)
.dll 파일 실행 시 생기는 오류 해결(1)
choyoung
2025. 1. 26. 22:27
이 전 포스트에서 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 파일이 아니거나 컴파일이 제대로 이루어지지 않았을 때 생기는 오류를 위와 같은 방법들로 해결해 보시기 바랍니다!
내일은 또 다른 오류의 해결 방법으로 작성하겠습니다.
오늘도 읽어주셔서 감사합니다!