DLL Not Found 에러

프라우드넷으로 개발 중에 DLL Not Found 관련 에러가 발생하여 문의 드립니다.

프라우드넷 버전: ProudNet-1.7.53113-master
개발 PC: Windows 10, 64비트
테스트 서버: window Server 2012 r2 64비트

PC에서는 잘 돌아가는데 Test PC인 window 2012 server로 옮겨가면 아래와 같이 dll을 못 찾는다는 에러가 뜨네요. 실행 파일 경로에 ProudDotNetClient.dll,ProudDotNetServer.dll, ProudNetClientPlugin.dll, ProudNetServerPlugin.dll

dll이 모두 있는 상태고요(64bit) .net core로 개발 중에 있습니다. 테스트 하려는 서버 PC에 프라우드넷도 설치해보고 visual studio도 설치해봤지만 지속적으로 에러가 발생합니다.

아래 에러 메시지 첨부합니다.

System.TypeInitializationException: ‘The type initializer for ‘Nettention.Proud.ProudNetServerPluginPINVOKE’ threw an exception.’

ProudNet-1.7.53113-master 버전의 C#서버 모듈은 서버 실행 파일이 있는 경로에 다음 6가지 dll 파일들이 모두 동일한 architecture로 존재하고 있어야 제대로 동작합니다.

  1. ProudDotNetClient.dll
  2. ProudDotNetServer.dll
  3. ProudNetClientPlugin.dll
  4. ProudNetServerPlugin.dll
  5. ProudNetClient.dll
  6. ProudNetServer.dll

dll 파일의 architecture는 dumpbin으로 확인해보실 수 있습니다. dll 파일들이 모두 잘 있는 데에도 문제가 계속 발생하신다면, 설치 파일 내에 동봉 되어있는 VS 재배포 패키지도 설치해 보시기 바랍니다.

혹시 닷넷에서 32비트로 빌드하셨다면, libcrypto-1_1.dlllibssl-1_1.dll 파일 2개를 서버 실행 파일이 있는 경로에 넣어주셔야 됩니다.

1.7.54066-master 버전부터는 OpenSSL 파일이 프라우드넷 설치 파일에 같이 들어있지만 그 이하 버전의 경우, 라이선스 문제 때문에 OpenSSL 파일들을 같이 제공하지 않았으니 참고해 주세요.