MVC项目抱怨它无法找到Nhibernate.dll版本2.1.0.4000

时间:2010-11-29 20:28:49

标签: nhibernate

在我的MVC项目中,我正在尝试使用最新的Fluent Nhibernate和NHibernate.linq。我正在使用最新的Fluent Nhibernate发布版本附带的Nhibernate.dll。但是,我只能找到NHibernate.linq 1.0。

尝试运行时出现错误:

Could not load file or assembly 'NHibernate, Version=2.1.0.4000, Culture=neutral,
PublicKeyToken=aa95f207798dfdb4' or one of its dependencies. The located assembly's    
manifest definition does not match the assembly reference. (Exception from HRESULT:
0x80131040)

我在NHibernate项目的SourceForge上看到他们在NHibernate 2.1.2项目下有一个NHibernate.Linq 2.1.2版本,但是如果你下载这个zip,它就是空的。

我的想法是Linq引用了较旧的NHibernate.dll,但我怎样才能获得NHibernate.linq.dll 2.1.2版本?

还有另一个问题,同样的错误,我尝试了所有的建议,确保包含所有其他NHibernate.dll。我没有使用Fluent使用的相同NHibernate.dll重建NHibernate.linq项目,因为我希望得到更新版本的NHibernate.linq。

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

正如James所写,你应该下载2.1.2 zip并用7-Zip解压缩。版本号应为1.1.0.1001。

然而...... NHibernate 3.0即将发布。它包含一个集成的Linq提供程序,它更加完整,功能强大且可扩展。

我不会在新项目中使用旧的提供程序(与新的提供程序不完全兼容)。

答案 2 :(得分:0)

尝试将以下XML添加到<configuration>根标记内的Web / App.config文件中。

   <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="NHibernate" publicKeyToken="AA95F207798DFDB4" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-2.1.1.4000" newVersion="2.1.2.4000" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>