在我的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。
答案 0 :(得分:2)
你可以从这里获取与NH2.1.2兼容的NHibernate.Linq版本:
答案 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>