我收到了以下代码:
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加载它,并且可以在简单的运行模式下?
答案 0 :(得分:1)
32/64位执行配置可能有问题吗?两个平台的DLL都相同,但.exe
不是。您可以检查您的测试项目是否配置为AnyCPU。