C#/Unity 3D

[Unity 3D] [Build] Encoding 949 Error 및 InvalidProgramException Error 해결하기

hizzi 2024. 3. 27. 13:58
더보기

목차

  • DB 연결 방식
  • Encoding Error 해결 방법
  • DB 연결 Error 해결 방법

 

1. DB 연결 방식

  현재 나의 DB 연결 방식은 System.Data.SqlClient.dll을 사용한 방식이다. Visual Studio에서 Nuget으로 System.Data.SqlClient를 설치했다. 해당 dll을 사용하기 위해서는 Unity를 .Net FrameWork로 변경해야한다.

(dll 경로 : E:\(Project 이름)\Packages\System.Data.SqlClient.4.8.6\lib\net461)

 

* 이 방식을 사용하면 Build 전 Game에서는 정삭 동작할 것이다. 하지만 나의 경우, Build 후 exe 파일 실행 시 인코딩 및 DB 연결 에러가 발생하였다.

 

2. Encoding Error 해결 방법

unity System.NotSupportedException:Encoding 949 data could not be found.

 

   1. Unity 설치시 생성되는 dll을 옮겨줘야 한다.

       경로 : C:\Program Files\Unity\Hub\Editor\2022.3.20f1\Editor\Data\MonoBleedingEdge\lib\mono\unityjit-win32

       (2020 이후 버전은 jit 폴더의 파일을 복사해야 한다.)

 

   2. I18N.CJK.dll, I18N.dll 파일을 E:\(Build 폴더)\ (Project  이름)_Data\Managed에 붙여넣는다.

       (CJK : 중국/일본/한국을 의미한다.)

 

3. DB 연결 Error 해결 방법

InvalidProgramException: Invalid IL code in I18N.Common.Manager:get_PrimaryManager (): IL_0000: ret

 ▶ 해당 에러는 System.Data.SqlClient.dll이 제대로 Build되지 않아서 생긴 에러다.

 

   1. Unity 프로젝트의 Assets 폴더 하위에 Plugins 폴더를 생성한다.  

 

   2. 1.DB 연결 방식의 경로(E:\(Project 이름)\Packages\System.Data.SqlClient.4.8.6\lib\net461)에 있는 System.Data.SqlClient.dll, System.Data.SqlClient.xml 파일을 Plugins 폴더에 붙여넣는다.

 

  3. 다시 Build 후 exe 파일 실행하면 정상적으로 DB가 연결되어 데이터를 받아오는 것을 확인할 수 있다.

 

 

 

사담

  처음으로 티스토리 글을 적어봤다..! 처음부터 차근차근 올리지 못해서 Build 후 에러 해결부터 작성하게 되었지만 이후에 개발하는 과정들도 같이 올릴 예정이다!

오늘 작성한 에러 해결 방법이 많은 분들에게 도움이 됐으면 좋겠다 ㅎㅎ