繁体   English   中英

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

[英]Fluent NHibernate cannot load MySql.Data from GAC in debug mode of a test

我得到以下代码:

    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.Z06416233FE5EC4C4C593Z1222E 的示例) .

更新好的,当我从 GAC 获取 MySql.Data.dll 并将其作为文件引用,并设置 Copy Local 时,它终于开始在调试中工作。 这是什么情况? 为什么它不能在调试中从 GAC 加载它,并且可以在简单运行模式下?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM