3

我在让 Hibernate 和 Windsor 一起工作时遇到问题。我的设置详细信息如下

我有两个项目
-DomainModel
-MVCApp

我已经下载了 NHibernate 2.1.2 和 Windsor 2.1.1
我从 NHibernate 下载的 required_Bins 文件夹中添加了对 DomainModel 的以下引用 -
Antlr3、Iese、log4net 和 NHibernate 2.1.2.4
我还添加了引用在 DomainModel 到 Lazy_loading 的文件,包括

Castle.Core - 1.1.0.0
Castle.DynamicProxy2 - 2.1.0.0
NHibernate.ByteCode.Castle - 2.1.2.4

MVCApp 有以下参考:

Castle.Core - 1.2.0.6623
Castle.Microkernel - 2.1.0.6655
Castle.Windsor - 2.1。 0.6655
Castle.DynamicProxy2 - 2.2.0.6628

运行应用程序时出现错误:

无法加载文件或程序集'Castle.DynamicProxy2,版本 = 2.1.0.0,
调用程序集:NHibernate.ByteCode.Castle,版本 = 2.1.2.4000

MVC bin 文件夹具有 Castle.DynamicProxy2 - 2.2.0.6628 版本,因此请求旧版本后出现错误。

我该如何让它发挥作用?我遗漏了什么或包含不正确?请帮忙..谢谢。

4

4 回答 4

3

你从哪里得到你的 NHibernate.ByteCode.Castle?

我相信 ActiveRecord 2.1 将为 DynamicProxy2 的最新稳定版本构建一个。

否则,请按照 Lachlan Roche 的建议行事。

于 2010-02-27T12:41:03.047 回答
2

您可以获取 NHibernate.ByteCode.Castle 的源代码并构建使用 Castle.DynamicProxy2 版本 2.2.0.6628 的版本。2.1.x 分支svn 中。

程序集绑定重定向也可能起作用。由于 Castle.DynamicProxy2 的 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>
于 2010-02-27T11:58:41.790 回答
0

我遇到了这个问题,您可能需要将项目属性的应用程序选项卡上的“目标框架”从“.NET Framework 4 Client Profile”更改为“.NET Framework 4”

于 2010-11-04T21:40:07.950 回答
0

我有同样的问题......我通过更改 NHibernate Bytecode provider解决了它。
当我开始使用 NHibernate 时,我无缘无故选择了 Castle Bytecode 提供程序。

因为我不在乎我实际使用哪个字节码提供程序,所以我只是更改了它(在我的情况下为 NHibernate.ByteCode.LinFu)。
所以 NHibernate 不再需要任何对 Castle 的引用,我可以使用我想要的任何版本的 Windsor。

于 2010-11-09T00:07:26.160 回答