无法从 NHibernate.Driver.SQLiteDriver 创建驱动程序
很抱歉我再次发布这个问题。我用谷歌搜索它并在 stackoverflow 和其他上找到了许多帖子和线程,但没有一个适合我。
当我运行 Windows 窗体应用程序时,我收到此错误消息。
这是我的 App.config 文件:
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate"/>
</configSections>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory name="NHibernate.Test">
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="connection.driver_class">NHibernate.Driver.SQLiteDriver</property>
<property name="connection.connection_string">
Data Source=nhibernate.db;Version=3;New=True;
</property>
<property name="dialect">NHibernate.Dialect.SQLiteDialect</property>
<property name="query.substitutions">true=1;false=0</property>
<property name="proxyfactory.factory_class">
NHibernate.ByteCode.LinFu.ProxyFactoryFactory,NHibernate.ByteCode.LinFu
</property>
</session-factory>
</hibernate-configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>
我正在 Windows Server 2008 R2 64 位上使用 Visual Studio 2010。 我的项目配置是 X86,我尝试了 System.Data.SQLite.dll 文件的 x86、x64 和 ManagedOnly 版本,但似乎都不起作用。
谁能帮我解决这个问题吗?
PS:我知道有与此类似的线程,但请不要关闭此线程,因为没有一个解决方案对我有用。
谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这是错误:
Here is the error:
该错误似乎与驱动程序创建有关,这表明驱动程序未正确安装在您的系统上。我刚刚测试过这个,它对我有用(好吧,我使用的是 monodevelop,而不是 VS),我从这里安装了 Sqlite 驱动程序:
ADO.NET 2.0 Provider for SQLite
然后我在 app.config 文件中使用了它:
The error appears to be with the driver creation, this suggests to me that the driver is not installed on your system correctly. I've just tested this and it works for me (ok I'm using monodevelop, not VS), I installed the Sqlite driver from here:
ADO.NET 2.0 Provider for SQLite
I then used this in my app.config file:
看来 SQLite 程序集未加载,因此出现错误:
无法从 NHibernate.Driver.SQLiteDriver 创建驱动程序。 ---> System.Reflection.TargetInitationException:调用目标已引发异常。 ---> NHibernate.HibernateException:无法找到程序集 SQLite.NET 中的 IDbCommand 和 IDbConnection 实现。确保程序集 SQLite.NET 位于应用程序目录或全局程序集缓存中。如果程序集位于 GAC 中,请使用应用程序配置文件中的 element 指定程序集的全名。
您可以使用以下方法预加载程序集:
it appears that the SQLite assembly is not loaded hence the error:
Could not create the driver from NHibernate.Driver.SQLiteDriver. ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> NHibernate.HibernateException: The IDbCommand and IDbConnection implementation in the assembly SQLite.NET could not be found. Ensure that the assembly SQLite.NET is located in the application directory or in the Global Assembly Cache. If the assembly is in the GAC, use element in the application configuration file to specify the full name of the assembly.
you could preload the assembly using: