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; } 
    } 
} 

不起作用(我从之前得到的例外)..而有趣的是,这两个类的测试使用完全相同的基类,其中包含所有的数据库访问代码..

+1

什么.net版本是你的项目?什么.net版本是DP2? – Simon 2010-08-11 08:17:02

+0

我的项目是C#4.0,我从Castle Project下载了最新的DynamicProxy dll ..据我所知,它是用于.net 2.0运行时.. – 2010-08-11 09:09:26

+0

我们遇到了一些模糊的问题以及.NET4.0项目(实际上,.NET框架版本)引用了针对旧版本框架的程序集。 我们没有花太多时间寻找解决方案;我们现在决定暂时不使用.NET 4.0。 (虽然这不会阻止我们使用C#4.0)。 – 2010-08-11 09:24:21

我解决了这个问题。似乎Nhibernate正在寻找DynamicProxy 2.1.0,而我参考了2.1.1 ..