VS2010 + NUnit无法加载程序集?
在一个项目中使用VS2010,C#4.0,NHibernate和NUnit进行数据库测试时,我遇到了一个奇怪的问题。当我运行我的测试时,nunit-agent.exe崩溃没有明显的原因..因为我已经然后发现,当我调试我的测试中,我得到的TestFixtureSetup方法以下异常:VS2010 + NUnit无法加载程序集?
TypeInitializationException:类型 初始化为 “NHibernate.ByteCode.Castle.ProxyFactory” 扔一个例外。 无法加载文件或程序集 'Castle.DynamicProxy2, Version = 2.1.0.0,Culture = neutral, PublicKeyToken = 407dd0808d44fbdc'或 其依赖项之一。位于 程序集清单定义 与程序集引用不匹配。 (从HRESULT异常: 0x80131040) “:” Castle.DynamicProxy2, 版本= 2.1.0.0,文化=中立, 公钥= 407dd0808d44fbdc
现在,在我看来,它的寻找是相同的到它找到的那个?
我已经doublechecked,并在测试项目中引用程序集..我也尝试读取参考,但无济于事。任何想法?
UPDATE2:我试图改变目标框架.NET 3.5我的所有项目,现在所有测试失败,上述错误..
UPDATE:一些测试工作,别人不..我有一个客户类:
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; }
}
}
不起作用(我从之前得到的例外)..而有趣的是,这两个类的测试使用完全相同的基类,其中包含所有的数据库访问代码..
我解决了这个问题。似乎Nhibernate正在寻找DynamicProxy 2.1.0,而我参考了2.1.1 ..
什么.net版本是你的项目?什么.net版本是DP2? – Simon 2010-08-11 08:17:02
我的项目是C#4.0,我从Castle Project下载了最新的DynamicProxy dll ..据我所知,它是用于.net 2.0运行时.. – 2010-08-11 09:09:26
我们遇到了一些模糊的问题以及.NET4.0项目(实际上,.NET框架版本)引用了针对旧版本框架的程序集。 我们没有花太多时间寻找解决方案;我们现在决定暂时不使用.NET 4.0。 (虽然这不会阻止我们使用C#4.0)。 – 2010-08-11 09:24:21