.net core 使用NHibernate和InMemory SQLite进行.NET Core 2.1单元测试

.net core 使用NHibernate和InMemory SQLite进行.NET Core 2.1单元测试,.net-core,fluent-nhibernate,xunit.net,system.data.sqlite,.net Core,Fluent Nhibernate,Xunit.net,System.data.sqlite,我在运行XUnit测试时遇到以下错误 FluentNHibernate.Cfg.FluentConfigurationException:创建SessionFactory时使用了无效或不完整的配置。有关详细信息,请检查潜在原因集合和InnerException NHibernate.HibernateException:无法从NHibernate.driver.SQLite20Driver创建驱动程序,NHibernate,版本=5.1.0.0,区域性=中性,PublicKeyToken=aa9

我在运行XUnit测试时遇到以下错误

FluentNHibernate.Cfg.FluentConfigurationException:创建SessionFactory时使用了无效或不完整的配置。有关详细信息,请检查潜在原因集合和InnerException

NHibernate.HibernateException:无法从NHibernate.driver.SQLite20Driver创建驱动程序,NHibernate,版本=5.1.0.0,区域性=中性,PublicKeyToken=aa95f207798dfdb4。 System.Reflection.TargetInvocationException:调用的目标已引发异常。 NHibernate.HibernateeException:在assembly System.Data.SQLite中找不到DbCommand和DbConnection实现。确保程序集System.Data.SQLite位于应用程序目录或全局程序集缓存中。如果程序集位于GAC中,请使用应用程序配置文件中的元素指定程序集的全名

我将FluentHhibernate v2.1.2、NHibernate 5.1.3、System.Data.SQLite.Core v1.0.109.1作为Nuget软件包引用,并使用Visual Studio 2015

我在这里看到的所有其他解决方案都已通过添加System.Data.SQLite进行了修复,但我无法使其正常工作

我还尝试将测试项目设置为仅构建x64,但没有成功


感谢您对此问题的帮助。

我通过将System.Data.SQLite.dll(针对.netcore 2.0的预编译二进制文件)和SQLite.Interop.dll添加到我的项目上的一个目录,并通过后期生成事件将文件复制到输出目录,从而解决了此问题

XCOPY $(ProjectDir)\Lib\* $(TargetDir) /Y
我很惊讶仅仅添加System.Data.SQLite nuget包是不够的

希望这能帮助有类似问题的人