首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Solrnet、StructureMap和NHibernate

Solrnet、StructureMap和NHibernate
EN

Stack Overflow用户
提问于 2011-10-13 04:47:17
回答 1查看 298关注 0票数 0

我在集成我们公司构建的后端使用Solrnet的库时遇到了一个问题。我们还有许多其他的库,其中一个库使用NHibernate作为数据库。这一切都很好,库可以取回数据。

当我们添加对这个使用Solrnet的新库的引用时,事情开始变得复杂起来。运行应用程序时发生的第一个错误。当应用程序使用NHibernate运行库的StructureMap注册表时,注册表会崩溃,因为NHibernate无法加载Castle.Core程序集(在添加引用之前,这并没有导致丢失任何问题)。如果我们确保Castle.Core存在,NHibernate就会在尝试加载Castle.Windsor时失败,这也是它以前不需要的。

有什么想法吗?正如我所说的,如果我们删除使用Solrnet的新库,使用NHibernate的库是很好的,但是一旦我们引用它,事情就开始出错。使用Solrnet的库也使用StructureMap、FWIW配置Solrnet。

编辑:这些是混合中的各种程序集的版本。StructureMap - 2.6.1.0 Fluent NHibernate - 1.0.0.0 NHibernate - 2.1.2.4000 StructureMap- 0.3.1.0 Castle.Core (随NH提供)- 1.1.0.0

更新:看起来Solrnet正在尝试加载Castle.Windsor。我不知道为什么,因为我们已经给了它一个StructureMap配置。仅仅它的存在就足以把事情搞得一团糟。即使没有依赖于Solrnet的程序集,它的存在似乎也会扰乱NHibernate的配置。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-14 10:13:24

好了,我想出了如何停止这个错误。我们使用的是合并后的Solrnet.dll,它包含了连接到其他Ioc容器以及NH集成的所有类型。我转而使用未合并的二进制文件,这将其他Iocs保存在单独的程序集中,我们只包含了基本的Solrnet.dll和StructureMap.Solrnet.dll,这在很大程度上解决了问题。我仍然必须确保包含Microsoft.Patterns.ServiceLocater,因为基本Solrnet.dll仍然公开这一点。不是很理想,因为我们没有使用它,但比需要一堆其他程序集要好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7746375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档