본문으로 바로가기

C# System.BadImageFormatException 발생원인과 해결방법

category IT/C# 2018.09.07 08:17

어느날 갑자기 멀쩡하게 컴파일 되던 프로젝트가 이상한 오류를 뱉어내더군요.

처음보는 에러였습니다.


System.BadImageFormatException 파일이나 어셈블리 **.Framework...

여기에 종속되어 있는 파일이나 어셈블리중 하나를 로드할 수 없습니다. 프로그램을 잘못된 형식으로 로드하려고 했습니다.


C# System.BadImageFormatException 발생원인과 해결방법


처음에 이게 무슨 에러인가, 디버그 모드에서는 잘 빌드가 되고 실행파일도 실행이 잘 됐습니다.

그런데 릴리즈 모드로 빌드할 때만 위와 같은 에러가 나면서 빌드도 정상적으로 되지만

실행은 안되더라구요.


참고로 **.Framework 라는건 C# DLL 프로젝트였고, 프로젝트 참조가 되어 있던 상황입니다.

그래서 이게 무슨에러인가 인터넷을 검색해 보니 금방 답이 나오더군요.

DLL 프로젝트와 DLL을 참조하는 프로젝트의 빌드 옵션 문제였습니다.


아래와 같은 방법으로 조치하여 해결했네요.


C# System.BadImageFormatException


프로젝트 속성에서 빌드항목에 플랫폼 버전을 DLL 프로젝트와, DLL을 참조하는 메인 프로젝트의 플랫폼을

동일 하게 통일 시켜줬습니다.


디버그 모드에서는 둘다 x86 플랫폼으로 설정되어 있고, 

릴리즈에서는 DLL은 모든플랫폼, 메인 프로그램은 x86 이렇게 되어 있었습니다.


근데 그 전까진 아무런 이상없이 잘 썼는데 갑자기 발생했는지는 모르겠네요.

실수로 바꿨나?