无法从NHibernate.Driver.SQLite20Driver创建驱动程序

时间:2010-11-18 12:25:17

标签: c# nhibernate sqlite

这是引发异常的代码

   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。

可能有什么问题?

6 个答案:

答案 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 ,它解决了我的问题。