2014-11-18 4 views
1

Unity에서 NHibernate를 사용하고 있고 디버그 환경에서 프로젝트를 실행하는 것이 효과적이지만 컴파일 된 EXE를 실행할 때 데이터베이스에 액세스하려고 할 때 NullReferenceException이 발생했습니다.Unity3에서 Mono를 통한 NHibernate 연결 문자열 문제

Debug.LogError(db.Access.mrefSession.Connection.ConnectionString); 

편집기에서 실행, 내가 콘솔에서 좋은 연결 문자열을 얻을 :

Data Source=localhost;Initial Catalog=TheDB;User ID=yy;Password=xxxx

하면 컴파일 실행하는 경우

는 많은 연구 후에, 나는 다음과 같은 실행 할 수 있었다 그러나 EXE는이 속성이 null입니다.

무엇이 누락 되었습니까?

+0

:

나는 여기에 대한 힌트를 얻었다? 구성 파일, app.config, 코드에서? – Firo

+0

@Firo 저는 컨벤션 기반 코드 구성자를 사용합니다. 그러나 그 질문에는 밀접하지 않습니다. :) –

답변

1

몇 가지 폭력적인 시행 착오를 거친 후, 나는 이것을 작동시킬 수있었습니다. 해결책은 간단합니다 : I18N.dll 및 I18N.West.dll이 표준 플레이어에서 누락되었습니다. 유니티 에디터 폴더 (C : \ Program Files (Unity) \ Unity \ Editor \ Data \ Mono \ lib \ mono \ 2.0)에서 프로젝트의 Assets \ Plugins 폴더로 복사하면 모든 것이 작동했습니다. 당신이 자 NHibernate를 구성 어떻게 http://answers.unity3d.com/questions/42955/codepage-1252-not-supported-works-in-editor-but-no.html

+0

안녕하세요 João, 저는 현재 Unity3d 내부에서 NHibernate를 사용하려고합니다. 그러나 성공하려면 아무런 성공도 얻지 못했습니다. 프로젝트를 설정하는 방법과 현재 사용중인 NHibernate의 버전을 공유 할 수 있습니까? 나는 정말로 당신의 도움에 감사 할 것입니다. – Jony

+0

@Jony해야 할 일 몇 가지 : 1) API 호환성 수준이 2.0 하위 집합이 아닌 전체 2.0인지 확인하십시오. 2) .NET을 타겟으로하는 오래된 NHibernate 버전을 보유해야합니다. 2. 3.3을 사용하고 있습니다. 3) 당신은 NHibernate DLL과 Unity 프로젝트의 Assets 폴더 어딘가에 필요한 모든 의존성을 넣어야 만합니다. –

+0

빠른 답장을 보내 주셔서 감사합니다! 내 유일한 문제는. NET 3.5에 대해 빌드 NHibernate 3.4 사용하고 있었다. NHibernate 3.3에서는 모든 것이 완벽하게 작동합니다. 다시 당신의 도움을 주셔서 감사합니다, 당신은 나를 많이 구 했어요! – Jony