如何重新编译Sharp Architecture库以使用NHIbernate 2.1.0.4000而不是2.1.0.3001

Srd*_*jan 1 nhibernate reference version s#arp-architecture

我更新了Sharp Architecture解决方案(SharpArchitecture_1.0_RTM_build_486)(我的本地副本)并引用了NHibernate 2.1.0.4000而不是NHibernate 2.1.0.3001 dll.我还更新了Sharp Architecture解决方案中所有其他NHibernate相关参考资料.

我能够重建Sharp Architecture并使用NHibernate 2.1.0.4000版传递所有测试.我使用了提供构建脚本.

当我在我的应用程序中更新引用(NHibernate和重新编译的Sharp dlls)并尝试初始化NHibernate时,应用程序抛出"无法加载文件或程序集"NHibernate,Version = 2.1.0.3001,Culture = neutral,PublicKeyToken = aa95f207798dfdb4'或它的一个依赖项.找到的程序集的清单定义与程序集引用不匹配.(HRESULT的异常:0x80131040)"

在NHibernateSession.Init方法中抛出此错误.调用程序集是SharpArch.Data.

除了使用新的dll重新编译Sharp架构外,是否还需要做其他事情?Sharp Architecture是针对NHibernate 2.1.0.3001的强类型.

我之所以这样做是因为我想在我的应用程序中包含NHibernate.Cache.NHibernate.Cache是​​针对NHibernate 2.1.0.4000(NHibernate-2.1.0.GA-bin)编译的

Joh*_*hnL 5

在打开system-web标记之前,在web.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.0.3001" newVersion="2.1.0.4000"/>
   </dependentAssembly>
 </runtime>
Run Code Online (Sandbox Code Playgroud)

这应该可以解决问题.