2010-11-18 4 views
13

에서 드라이버를 만들 수 없습니다다음은 예외를 발생 코드의 NHibernate.Driver.SQLite20Driver

public Configuration GetConfiguration() 
    { 
     var persister = SQLiteConfiguration 
      .Standard 
      .UsingFile("Test.db") 
      .ShowSql(); 


     var configuration = Fluently 
      .Configure() 
      .Database(persister) 
      .Mappings(map => map.FluentMappings.AddFromAssemblyOf<WordMap>()) 
      .BuildConfiguration(); 

     new SchemaExport(configuration).Execute(true, true, false); 

     return configuration; 

    } 

전체 예외 텍스트 :

실패 : NHibernate.HibernateException : 드라이버를 만들 수 없습니다 from NHibernate.Driver.SQLite20Driver, NHibernate, 버전 = 2.1.2.4000, 문화 = 중립, PublicKeyToken = aa95f207798dfdb4.

----> System.Reflection.TargetInvocationException : 예외가 호출 대상에 의해 throw되었습니다.

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

버전 System.Data.SQLite의 2.1.2.4000
버전 1.0.66.0
대상 프레임 워크 System.Data.SQLite 3.5 (86)
로컬 복사본이 설정되어입니다.

무엇이 잘못되었을 수 있습니까?

+0

본 적이 있습니까? http://stackoverflow.com/questions/845490/fluentnhibernate-and-sqlite http://stackoverflow.com/questions/1460045/sql-data-sqllite-version-with-nhibernate-2-1 http : // stackoverflow.com/questions/1041271/how-to-configure-sqlite-to-run-with-nhibernate-where-assembly-resolves-system-dat –

답변

2

LocalCopy가 켜져 있으면 시작 프로젝트의 System.Data.SQLite 버전에서 해당 프로젝트가 찾고있을 것이므로 하위 프로젝트의 bin 디렉토리가 아니라 해당 프로젝트를 찾을 것입니다.

6

NHibernate.Driver.SQLite20Driver, NHibernate에, 버전 = 2.1.2.4000에서 드라이버를 만들 수 없습니다, 문화 = 중립, PublicKeyToken = aa95f207798dfdb4

솔루션 참조 64 비트 머신에서 64 비트 프로세스로 테스트를 실행합니다.

희망을 도울 수 있기를 바랍니다.

9

그냥 응용 프로그램의 기본 디렉토리에 System.Data.SQLite.dll 라이브러리를 복사 코딩 메리는 (특히 NHibernate.dll 라이브러리가 배치됩니다). VS 아래에 참조로 추가 할 필요가 없습니다.

감사
Bronek

6

난 그냥 SQLite는 NuGet 패키지를 설치하고 그 날 위해 일했습니다.

관련 문제