我在一个项目中使用VS2010,C#4.0,NHibernate和NUnit正在进行中..在进行数据库测试时我遇到了一个奇怪的问题。当我运行我的测试时,nunit-agent.exe崩溃没有明显原因..我从那时起发现,当我调试我的测试时,我在TestFixtureSetup方法中得到以下异常:
TypeInitializationException:类型 初始化器 'NHibernate.ByteCode.Castle.ProxyFactory' 抛出一个例外。 无法加载文件或程序集 “Castle.DynamicProxy2, 版本= 2.1.0.0,文化=中立, PublicKeyToken = 407dd0808d44fbdc'或 其中一个依赖项。位于 程序集的清单定义 与程序集引用不匹配。 (HRESULT的例外情况: 0x80131040) “:” Castle.DynamicProxy2, 版本= 2.1.0.0,文化=中立, 公钥= 407dd0808d44fbdc
现在,在我看来,它所寻找的东西与它找到的相同?
我已经进行了双重检查,并且在测试项目中引用了程序集。我也试过读取引用,但无济于事..有什么想法吗?
UPDATE2:我尝试将目标框架更改为所有项目的.net 3.5,现在所有测试都失败并出现上述错误。
更新:有些测试有效,有些则不行..我有客户类:
public class Customer : IEntity<string>
{
private readonly string id;
public virtual string Id
{
get { return id; }
}
public virtual string Name { get; set; }
public virtual Address Address { get; set; }
}
测试运行完全正常..但我的产品类测试:
public class Product : IEntity<string>
{
private readonly string id;
public virtual string Name { get; set; }
public virtual decimal Price { get; set; }
public virtual string Id
{
get { return Id; }
}
}
不起作用(我之前得到了异常)..而有趣的是,两个类的测试都使用包含所有数据库访问代码的完全相同的基类。
答案 0 :(得分:2)
我解决了问题..看起来Nhibernate正在寻找DynamicProxy 2.1.0,而我引用了2.1.1 ..