.NET 4および32ビットのバージョン= 1.0.74.0のSQLiteでNHibernateを使用しようとしました。私は 64 ビットの WIN7 を使用していますが、アプリケーションを x86 モード (VS2010 Express のデフォルト) でビルドしています。
同じ SQLite をスタンドアロン アプリケーションとして使用すると正常に動作しますが、NHibernate で使用しようとするとスローされますBadImageFormatExcepion
少しNHibernateをデバッグしたところ、次のステートメントで例外がスローされました
System.Type.GetType("System.Data.SQLite.SQLiteConnection, System.Data.SQLite");
誰かが解決策を知っている可能性はありますか? VS Express でデフォルト モードを使用しているからですか? 他の方法を使用してプラットフォームを指定する必要がありますか? sqlite 用の他の dll をダウンロードしてみますか?
SOに関する他の回答をいくつか確認しましたが、app.configにこれを追加するのが最善でした:
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SQLite"/>
<add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite"/>
</DbProviderFactories>
</system.data>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>