2011-08-09 3 views
3

Fluent NHibernate 2.12를 System.Data.SQLite (버전 1.0.74.0, .NET4 x64)와 함께 사용하려고합니다.
나는 다음과 같은 오류 (안쪽 예외) 얻을 내 세션 공장을 만들려고 :System.Data.SQLite 및 Fluent NHibernate - IDBCommand를 찾을 수 없습니다.

어셈블리 System.Data.SQLite의에 IDbCommand 및 IDbConnection을 구현 찾을 수 없습니다. 어셈블리 System.Data.SQLite가 응용 프로그램 디렉터리 또는 전역 어셈블리 캐시에 있는지 확인하십시오. 어셈블리가 GAC에있는 경우 응용 프로그램 구성 파일의 요소를 사용하여 어셈블리의 전체 이름을 지정하십시오.

<configuration> 
    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 
    </startup> 
    <runtime>  
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" > 
     <probing privatePath="Lib\NHibernate;Lib\Castle;Lib\SQLite"></probing> 
     <qualifyAssembly 
     partialName="System.Data.SQLite" 
     fullName="System.Data.SQLite, Version=1.0.74.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 
    </assemblyBinding> 
    </runtime> 
</configuration> 

을 내 개인 프로빙 경로가
사람이 단서를 가지고 (이미 체크 된) 정확한 파일이 포함

은 무엇 이미 내 app.config에 제안 된 것은 다음과 같습니다 시도?

+0

이 프로젝트에 SQLLite DLL을 참조하는 버그에 대한 참조를 발견? – csano

+1

Fuslogvw.exe로 .net-assembly-resolve-log를 볼 수 있습니까? 거기서 그는 그가 sqllite를 검색하는 곳을 볼 수 있고 그것을로드하는 데 문제가 있다면 볼 수 있습니다. – Firo

답변

0

방금 ​​단위 테스트를 위해 유창한 nhibernate를 SQLite로 설정 했으므로 여기에 몇 가지 팁이 있습니다. Visual Studio 2010을 사용하여 디버깅하는 경우 슬프게도 SQLite 32 비트를 사용해야합니다. 64 비트 어셈블리를 포함하려고 할 때 Visual Studio의 다음 릴리스에 포함되어야하는 알려진 버그가 있습니다. 그 외의 경우 웹 설정에 다음 항목이 포함되어 있는지 확인하십시오.

<configuration> 
    <startup useLegacyV2RuntimeActivationPolicy="true"> 
     <supportedRuntime version="v4.0"/> 
    </startup> 
</configuration> 

PS는 http://connect.microsoft.com/VisualStudio/feedback/details/556670/could-not-load-file-or-assembly-error-when-referencing-a-64-bit-assembly