C# Fluent NHibernate无法在测试的调试模式下从GAC加载MySql.Data
我得到了以下代码:C# Fluent NHibernate无法在测试的调试模式下从GAC加载MySql.Data,c#,mysql,unit-testing,nhibernate,fluent-nhibernate,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 Ses
var cfg = new Configuration();
cfg.Configure();
FluentConfiguration config = Fluently.Configure(cfg)
.Mappings(
m => m.FluentMappings.AddFromAssemblyOf<InputMapping>());
s_SessionSource = new SessionSource(config);
var cfg=新配置();
Configure();
FluentConfiguration配置=Fluently.Configure(cfg)
.映射(
m=>m.FluentMappings.AddFromAssemblyOf());
s_SessionSource=新SessionSource(配置);
当我调试单元测试时,最后一行抛出异常,错误如下:
无法加载文件或程序集“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是最新的1.2版本,适用于3.1版本NHB is 3.2连接器is 6.3.7.0
我正在使用MSTest。当我在没有调试的情况下运行测试(运行选中的测试)时,它不会抛出任何异常并成功完成(它会对MySQL测试数据库执行操作,因此在这种情况下,它会找到MySQL.Data.dll并插入行,例如,没有问题)
更新好的,当我从GAC获取MySql.Data.dll并将其作为文件引用,然后安装Copy Local时,它最终开始在调试中工作。情况如何?为什么它不能在调试时从GAC加载,而可以在简单运行模式下加载?可能是32/64位执行配置的问题?两种平台的DLL相同,但
.exe
不同。您可以检查您的测试项目是否配置为AnyCPU。是否检查以确保您引用的是所有项目中正确的DLL?我的项目引用的是MySql.Data。当在非调试模式下测试成功完成时,一个测试会将行插入到测试数据库中,例如,当我尝试调试时,不会出现错误