流畅的NHibernate无法在测试的调试模式下从GAC加载MySql.Data

时间:2011-08-15 01:03:02

标签: c# mysql unit-testing nhibernate fluent-nhibernate

我收到了以下代码:

    var cfg = new Configuration();
    cfg.Configure();
    FluentConfiguration config = Fluently.Configure(cfg)
        .Mappings(
            m => m.FluentMappings.AddFromAssemblyOf<InputMapping>());
    s_SessionSource = new SessionSource(config);
当我调试我的单元测试时,

最后一行抛出异常并出现以下错误:

  

无法加载文件或程序集“MySql.Data”或其中一个   依赖。系统找不到指定的文件。

问题是它没有说它尝试使用的版本。 我尝试使用以下配置捕获所有版本:

 <dependentAssembly>
    <assemblyIdentity name="MySql.Data"
                      publicKeyToken="c5687fc88969c44d"
                      culture="neutral" />
    <bindingRedirect oldVersion="1.0.0.0-6.3.6.0"
                     newVersion="6.3.7.0" />
 </dependentAssembly>

但问题仍然存在。奇怪的是异常并没有说明版本,它通常在这种情况下。

Fluent NHB是3.1版本的最新1.2版本NHB是3.2连接器是6.3.7.0

我正在使用MSTest。当我在没有调试的情况下运行测试(运行检查测试)时,它不会抛出任何异常并成功完成(它确实对MySQL测试数据库执行操作,因此在这种情况下它会找到MySql.Data.dll并插入行例如没有问题)

UPDATE 好吧,当我从GAC获取MySql.Data.dll并将其作为文件引用时,设置Copy Local它最终开始在调试中工作。怎么回事?为什么它无法在调试中从GAC加载它,并且可以在简单的运行模式下?

1 个答案:

答案 0 :(得分:1)

32/64位执行配置可能有问题吗?两个平台的DLL都相同,但.exe不是。您可以检查您的测试项目是否配置为AnyCPU。