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

问题描述 投票:0回答:1

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

FluentNHibernate.Cfg.FluentConfigurationException:创建SessionFactory时使用了无效或不完整的配置。检查PotentialReasons集合,以及InnerException以获取更多详细信息。

NHibernate.HibernateException:无法从NHibernate.Driver.SQLite20Driver,NHibernate,Version = 5.1.0.0,Culture = neutral,PublicKeyToken = aa95f207798dfdb4创建驱动程序。 System.Reflection.TargetInvocationException:调用目标抛出了异常。 NHibernate.HibernateException:找不到程序集System.Data.SQLite中的DbCommand和DbConnection实现。确保程序集System.Data.SQLite位于应用程序目录或全局程序集缓存中。如果程序集位于GAC中,请使用应用程序配置文件中的元素指定程序集的全名。

我正在引用FluentHNHibernate v2.1.2,NHibernate 5.1.3,System.Data.SQLite.Core v1.0.109.1作为Nuget包并使用Visual Studio 2015。

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

我也尝试将测试项目设置为仅构建x64,但这不起作用。

感谢您对此问题的帮助。

.net-core fluent-nhibernate xunit.net system.data.sqlite
1个回答
0
投票

我能够通过将System.Data.SQLite.dll(预编译二进制文件为.netcore 2.0)和SQLite.Interop.dll添加到项目目录中来解决问题,并将文件复制到输出目录中建立活动。

XCOPY $(ProjectDir)\Lib\* $(TargetDir) /Y

我很惊讶只是添加System.Data.SQLite nuget包是不够的。

希望这可以帮助有类似问题的人。

© www.soinside.com 2019 - 2024. All rights reserved.