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

MVC项目无法找到Nhibernate.dll版本2.1.0.4000,nhibernate,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=aa95f207798

在我的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)
我在SourceForge的NHibernate项目中看到,他们在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的更新版本。

您可以从这里获取与NH2.1.2兼容的NHibernate.linq版本:


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

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


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

尝试将以下XML添加到
根标记内的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>


我提到我尝试下载它(两台不同的电脑),当尝试打开/提取文件时,我会发现文件是空的,或者文件无效(取决于哪个操作)。您能够成功下载并打开吗?由于某些原因,Windows资源管理器不喜欢zip文件。不过,我还是用7-Zip()成功地打开了它。与Windows资源管理器相比,FWIW 7-Zip的压缩/提取速度要快得多。WinZip或WinRAR可能也可以很好地工作。@James-工作正常,但我注意到文件的版本仍然是1.1.0.1。您碰巧看到了吗?提取的文件是NHibernate.Linq,版本=1.1.0.1001,区域性=neutral,PublicKeyToken=null,它引用的是NHibernate,版本=2.1.2.4000,区域性=neutral,PublicKeyToken=aa95f207798dfdb4。(从.NET Reflector获取了此信息。)因此这将对NH2.1.2起作用。