有没有办法让NHIBERNATE 3使用Visual Studio 2008与Sharp Architecture合作?
-
25-10-2019 - |
题
我一直在尝试找到与Visual Studio 2008合作的尖锐体系结构版本,并使用了NHIBERNATE 3,但没有成功。我想使用NHIBERNATE版本3的查询API。我可以找到的最新构建是Sharp-Architecture-1.6.0.0.0.0.0.-Templify-package.zip,与Visual Studio 2008,MVC 2和NHIBERNATE相吻合。较新版本的Sharp Architecture仅与Visual Studio 2010兼容。我试图进行自定义的Sharp Architecture:
我更改了“ Sharparchitecture 1.6完整源”项目中的参考...:
- nhibernate.Validator至版本1.3.0.4000
- NHIBERNATE至3.1.0.4000版本
- nhibernate.bytecode.castle到版本3.1.0.4000
- Fluentnhibrenate至版本1.2.0.694
- Castle.Core to版本= 2.5.2.0
...通过用项目bin目录中的新DLL替换旧DLL。然后,我运行了clicktobuild.bat(位于下载的夏普架构zip文件base目录中)以构建解决方案。构建成功并通过了所有测试。然后,我用我刚刚建造的新的Sharp Architection代替了自己的项目中的所有DLL。我的项目确实编译了,但是当我运行它时,sharparch.data nhibernate nhibernateSession.cs抛出以下例外:
无法加载文件或汇编'Castle.Core,版本= 2.5.1.0,culture =中性,publicKeyToken = 407DD0808D44FBDC'或其依赖项之一。位置的组件的清单定义与汇编引用不符。 (Hresult的例外:0x80131040)
我尝试在我的web.config中使用bindingredirect。
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral"/>
<bindingRedirect oldVersion="2.5.1.0" newVersion="2.5.2.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
但这仍然不起作用。
我在正确的道路上吗?我还能做什么才能使它工作?
解决方案
我做到了。您只需要更改S#项目中的参考文献,因为关于S#的NH 2.1到3.0(如果需要的话,如果需要最新的)。
因此,这会有点麻烦,但可以确定可管理。
注意:不要忘记,诸如Fluent Nhibernate之类的项目也应更新以使用NH 3。