.net NHibernate和温莎议会冲突
让Hibernate和Windsor一起工作我遇到了一个问题。我的设置详细信息如下.net NHibernate和温莎议会冲突,.net,nhibernate,orm,castle-windsor,assembly-resolution,.net,Nhibernate,Orm,Castle Windsor,Assembly Resolution,让Hibernate和Windsor一起工作我遇到了一个问题。我的设置详细信息如下 我有两个项目 -域模型 -MVCApp 我已经下载了NHibernate 2.1.2和Windsor 2.1.1 我从NHibernate下载所需的_Bins文件夹中添加了以下对DomainModel的引用-Antlr3、Iese、log4net和NHibernate 2.1.2.4 我还将DomainModel中的引用添加到文件中以进行延迟加载,包括 Castle.Core-1.1.0.0Castle.dy
我有两个项目
-域模型
-MVCApp
我已经下载了NHibernate 2.1.2和Windsor 2.1.1
我从NHibernate下载所需的_Bins文件夹中添加了以下对DomainModel的引用-
Antlr3、Iese、log4net和NHibernate 2.1.2.4
我还将DomainModel中的引用添加到文件中以进行延迟加载,包括
Castle.Core-1.1.0.0
Castle.dynamicProxy-2.1.0.0
NHibernate.ByteCode.Castle-2.1.2.4
MVCApp有以下参考:
Castle.Core-1.2.0.6623
Castle.Microkernel-2.1.0.6655
温莎城堡-2.1.0.6655
Castle.DynamicProxy 2-2.2.0.6628
运行应用程序时,我收到错误:
无法加载文件或程序集'Castle.dynamicProxy 2,版本=2.1.0.0,
调用程序集:NHibernate.ByteCode.Castle,版本=2.1.2.4000
MVC bin文件夹具有Castle.dynamicProxy 2-2.2.0.6628版本,因此请求旧版本后出现错误
我怎样才能让它工作呢?我遗漏了什么或包含了什么?请帮忙。。谢谢。您可以获取NHibernate.ByteCode.Castle的源代码,并构建一个使用Castle.dynamicProxy 2.2.0.6628版本的版本。2.1.x分支位于svn中 程序集绑定重定向也可能起作用。由于Castle.DynamicProxy 2的2.1和2.2之间的API差异,此操作可能会失败。
还将更新MVCApp项目中的部件参照
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Castle.DynamicProxy2" publicKeyToken="407dd0808d44fbdc"/>
<bindingRedirect oldVersion="2.1.0.0" newVersion="2.2.0.6628"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
您是从哪里获得NHibernate.ByteCode.Castle的 我相信ActiveRecord2.1将为DynamicProxy 2的最新稳定版本构建一个
否则,按照Lachlan Roche的建议执行。我遇到了这个问题,您可能必须将项目属性的“应用程序”选项卡上的“目标框架”从“.NET framework 4客户端配置文件”更改为“.NET framework 4”我也遇到了同样的问题……我解决了它。
当我开始使用NHibernate时,我选择Castle字节码提供程序并没有特定的原因 因为我不关心我实际使用的字节码提供程序,所以我只是将其更改(在我的例子中是NHibernate.Bytecode.LinFu)。
因此,NHibernate不再需要任何对Castle的引用,我可以使用我想要的任何版本的Windsor。从NHibernate-2.1.2.GA-bin sourceforge.net下载。。感谢ActiveRecord选项。从AR抓取NHibernate字节码提供程序是您目前最好的选择,因为NHibernate团队不提供DynamicProxy 2.2的更新下载