这是引发异常的代码
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:无法创建驱动程序 来自NHibernate.Driver.SQLite20Driver,NHibernate,Version = 2.1.2.4000, Culture = neutral,PublicKeyToken = aa95f207798dfdb4。
----&GT; System.Reflection.TargetInvocationException:调用目标抛出了异常。
----&GT; NHibernate.HibernateException:程序集System.Data.SQLite中的IDbCommand和IDbConnection实现可以 找不到。确保找到程序集System.Data.SQLite 在应用程序目录或全局程序集缓存中。如果 程序集在GAC中,使用元素 应用程序配置文件指定的全名 组装
NHibernate的版本是2.1.2.4000
System.Data.SQLite的版本是1.0.66.0
目标框架为3.5(x86)
System.Data.SQLite的本地副本为ON。
可能有什么问题?
答案 0 :(得分:11)
只需将 System.Data.SQLite.dll 库复制到应用程序的基本目录(特别是放置NHibernate.dll库的地方)。 你甚至不需要在VS.
下添加它作为参考问候
布罗尼斯瓦夫
答案 1 :(得分:9)
我刚刚安装了SQLite NuGet包,这对我有用。
答案 2 :(得分:6)
我通过在app.config中添加useLegacyV2RuntimeActivationPolicy =“true”来摆脱这个问题。见Problem Upgrading NHibernate SQLite Application to .Net 4.0
答案 3 :(得分:6)
无法从NHibernate.Driver.SQLite20Driver,NHibernate,Version = 2.1.2.4000,Culture = neutral,PublicKeyToken = aa95f207798dfdb4
创建驱动程序解决方案:
testsettings: 选择主机 在64位机器上选择64位进程运行测试
希望我能提供帮助。快乐编码
答案 4 :(得分:2)
如果启用了LocalCopy,那么启动项目中的System.Data.SQLite版本是否已启用,因为它将在其中查找它,而不是在子项目的bin目录中。
答案 5 :(得分:0)
在VS 2019中,在 Test-> AnyCPU项目的处理器体系结构中,我从x64更改为 Auto ,它解决了我的问题。