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