DllNotFoundException: DLL 'SQLite.Interop.dll'
프로젝트 빌드 중 DllNotFoundException: DLL 'SQLite.Interop.dll' 에러가 발생해 해결 방법을 찾아보니, SQLite.Interop.dll을 배포시 첨부하라는 답변을 얻었습니다.
문제는, 이렇게 할 경우 AnyCPU 구성을 사용하기 불편해집니다.
방법이 없나 찾다가 패키지 폴더 구조를 봤더니 다음과 같이 되어 있었습니다.
각 플랫폼 폴더 안에 SQLite.Interop.dll이 들어가 있는 식이죠.
지금까지는 파워쉘 스크립트를 작성해 빌드 후 이벤트에서 호출하고, 플랫폼에 맞는 DLL을 복사하는 방식으로 진행하고 있었는데, 혹시나 하여 그냥 저 폴더 자체를 갖다가 넣어보니 구성을 x86이나 x64로 지정하지 않고 AnyCPU로 두어도 잘 작동하더군요.
이대로 실행하면 AnyCPU 구성에서도 정상적으로 로드하는 것을 확인할 수 있었습니다.
어찌 된 일인가 찾아보니, 스택 오버플로우에 잘 정리된 글이 있었습니다. SQLite가 알아서 현재 플랫폼에 맞는 바이너리를 x86, x64 폴더 중에서 선택해 로드한다고 합니다.
댓글
댓글 쓰기