无法使用Syste.Data.SQLite.dll x86运行mspec.exe,但它可以在R#MSpec运行器中运行

时间:2010-09-26 11:58:07

标签: .net sqlite resharper mspec

我使用mspec进行测试,并在测试中使用SQLite x86进行NHiernate安装。问题是,当我使用mspec r#runner运行我的测试时,一切正常,但是从控制台运行它会发现一个错误,它无法找到sqlite dll。

我的规范项目配置:

.net 4

x86(使用x86版本的sqlite)

System.Data.SQLite,Version = 1.0.64.0,Culture = neutral,PublicKeyToken = db937bc2d44ff139 mspec,Version = 0.3.0.0,Culture = neutral,PublicKeyToken = null,target runtime:v4.0.30319,target:x86

MSpec是从源代码构建的。在Reflector中,mspec.exe显示为为x86构建 - 这似乎适合我的设置,并且所述测试使用r#runner运行正常。

  

NHibernate.HibernateException:无法从NHibernate.Driver.SQLite20Driver,NHibernate,Version = 2.1.2.4000,Culture = neutral,PublicKeyToken = aa95f207798dfdb4创建驱动程序。 ---> System.Reflection.TargetInvocationException:调用目标抛出了异常。 ---> NHibernate.HibernateException:找不到程序集System.Data.SQLite中的IDbCommand和IDbConnection实现。确保程序集System.Data.SQLite位于应用程序目录或全局程序集缓存中。如果程序集位于GAC中,请使用应用程序配置文件中的元素指定程序集的全名。      at NHibernate.Driver.ReflectionBasedDriver..ctor(String driverAssemblyName,String connectionTypeName,String commandTypeName)      在NHibernate.Driver.SQLite20Driver..ctor()

有谁知道如何解决这个问题?

提前感谢来自多云维也纳的问候,

克里斯

1 个答案:

答案 0 :(得分:7)

使用fuslogvw.exe我发现了accutal错误(感谢提示;): “拒绝针对v2.0.50727构建的IJW模块,因为它可以在此过程中加载到另一个运行时。”

添加mspec.exe.config,如:

<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true" ></startup>
</configuration>

解决了这个问题,现在我的测试运行预期。

谢谢&amp;问候,

克里斯