C# VS2010+;NUnit无法加载程序集?

C# VS2010+;NUnit无法加载程序集?,c#,nhibernate,visual-studio-2010,nunit,c#-4.0,C#,Nhibernate,Visual Studio 2010,Nunit,C# 4.0,我正在一个项目中使用VS2010、C#4.0、NHibernate和NUnit。。在进行数据库测试时,我遇到了一个wierd问题。。运行测试时,nunit-agent.exe会无明显原因崩溃。。此后,我发现在调试测试时,TestFixtureSetup方法中出现以下异常: TypeInitializationException:类型 初始值设定项 'NHibernate.字节码.城堡.代理工厂' 抛出了一个异常。 无法加载文件或程序集 “城堡2号, 版本=2.1.0.0,区域性=中性, Publ

我正在一个项目中使用VS2010、C#4.0、NHibernate和NUnit。。在进行数据库测试时,我遇到了一个wierd问题。。运行测试时,nunit-agent.exe会无明显原因崩溃。。此后,我发现在调试测试时,TestFixtureSetup方法中出现以下异常:

TypeInitializationException:类型 初始值设定项 'NHibernate.字节码.城堡.代理工厂' 抛出了一个异常。 无法加载文件或程序集 “城堡2号, 版本=2.1.0.0,区域性=中性, PublicKeyToken=407dd0808d44fbdc'或 它的一个依赖项。位于 程序集的清单定义不正确 与程序集引用不匹配。 (HRESULT的例外情况: 0x8013100)”:“Castle.dynamicProxy 2, 版本=2.1.0.0,区域性=中性, PublicKeyToken=407dd0808d44fbdc

现在,在我看来,它所寻找的和它所发现的是一样的

我已经进行了双重检查,测试项目中引用了该程序集。。我也试过阅读参考资料,但没有用。。有什么想法吗

更新2:我尝试将所有项目的目标框架更改为.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; }
}
公共类客户:IEntity
{
私有只读字符串id;
公共虚拟字符串Id
{
获取{return id;}
}
公共虚拟字符串名称{get;set;}
公共虚拟地址{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; }
  }
}
公共类产品:智能
{
私有只读字符串id;
公共虚拟字符串名称{get;set;}
公共虚拟十进制价格{get;set;}
公共虚拟字符串Id
{
获取{return Id;}
}
}

不工作(我从以前得到异常)。。有趣的是,这两个类的测试使用了完全相同的基类,其中包含所有数据库访问代码。

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

您的项目是什么.net版本?DP2是什么.net版本?我的项目是C#4.0,我从Castle项目下载了最新的DynamicProxy dll。。据我所知,这是针对.NET2.0运行时的。当.NET4.0项目(实际上是.NETFramework版本)引用以较旧版本的框架为目标的程序集时,我们也遇到了一些模糊的问题。我们没有花太多时间寻找解决方案;我们刚刚决定暂时不使用.NET4.0。(这不会阻止我们使用C#4.0)。是的,正如我在上面的update2中指出的那样,我尝试以.NET3.5为目标,但是,现在我仍然得到相同的异常(仅适用于这次的所有测试)。。