2011-09-21 6 views
0

sql liteインメモリデータベースを使用してnhibernate層をテストしようとしているテストプロジェクトがあります。NHibernate.Driver.SQLite20Driver、Hibernate、Version = 3.1.0.4000からドライバを作成できませんでした。

私はエラーを取得しています:

NHibernate.Driver.SQLite20Driver、NHibernateは、バージョン= 3.1.0.4000からドライバを作成できませんでした、

private void CreateSessionFactory() 
{ 
      _sessionFactory = Fluently 
      .Configure() 
      .Database(_dbType) 
      .Mappings(m => m.FluentMappings 
       .AddFromAssemblyOf<UserMap>()) 
      .ExposeConfiguration(cfg => _configuration = cfg) 
      .BuildSessionFactory(); 
} 
私はfluentnhibernateを使用してい

、またナニトも。

何が問題なのですか?

更新

私はhttp://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wikiから(私はWindows上で7 64ビットだ)のx64をダウンロードし、今私は、このエラーになっている:私がしようとすると追加した場合

Unable to load DLL 'SQLite.Interop.DLL': The specified module could not be found. (Exception from HRESULT: 0x8007007E) 

をInterop.dllのv1.2では、追加することができない、それが有効であるなどを確認することはできません。

答えて

5

SQLite for .NETの最新版は2 dllとして配布されています。

  • System.Data.SQLite.dll
  • SQLite.Interop.dll

両方のDLLは、あなたのEXEと同じフォルダに存在する必要があります。 Interop dllはプラットフォーム固有であるため、手動で(またはビルド後に)x86またはx64バージョンをコピーする必要があります。

心に留めておくべきもう一つはitslefがMSVCR100.DLL(ビジュアルC++ 2010 SP1再頒布可能パッケージの一部)に依存SQLite.Interop.dllということです。あなたはここでそれを得ることができます:

+0

それは私が「参照を追加」を介して、それを追加したときに、私のプロジェクトに追加することを拒否理由を任意のアイデアは、sql.data.sqliteは罰金を追加しました。 – Blankman

+1

* SQLite.Interop.dll *は.NETプロジェクトへの参照として追加できない管理対象DLLではありません。手動でコピーする必要があります。 – Dmitry

+1

これは適用されなくなりました。 Windows上でsqliteインストーラを実行すると、メインのSystem.Data.SQLite.dllにineteropが作成されます。これはあなたがパーティーに持ち込む必要がある唯一のものです –

関連する問題