Solrnet, StructureMap и NHibernate - PullRequest
       12

Solrnet, StructureMap и NHibernate

0 голосов
/ 13 октября 2011

У меня проблема с интеграцией библиотеки, созданной нашей компанией, которая использует Solrnet в бэкэнде. У нас есть много других библиотек, одна из которых использует NHibernate для базы данных. Все работает нормально, библиотека возвращает данные.

Когда мы добавляем ссылку на эту новую библиотеку, которая использует Solrnet, все начинает идти плохо. Первая ошибка, которая возникает при запуске приложения. когда приложение запускает реестр StructureMap для библиотеки, используя NHibernate, реестр взрывается, потому что NHibernate не может загрузить сборку Castle.Core (что не вызывало никаких проблем при добавлении ссылки). Если мы затем убедимся, что Castle.Core присутствует, то NHibernate взорвется, пытаясь загрузить Castle.Windsor, который опять не нужен был раньше.

Есть идеи? Как я уже сказал, библиотека, которая использует NHibernate, хороша, если мы удаляем новую библиотеку, которая использует Solrnet, но как только мы ссылаемся на нее, все начинает идти не так. Библиотека, которая использует Solrnet, также настраивает Solrnet, используя StructureMap, FWIW.

EDIT: это версии различных сборок в миксе. StructureMap - 2.6.1.0 Свободный NHibernate - 1.0.0.0 NHibernate - 2.1.2.4000 Solrnet - 0.3.1.0 Castle.Core (поставляется с NH) - 1.1.0.0

ОБНОВЛЕНИЕ: похоже, что Солрнет пытается загрузить Castle.Windsor. Я не уверен, почему, поскольку мы дали ему конфигурацию StructureMap. Одного его присутствия достаточно, чтобы взорвать вещи. Даже без сборок, которые зависят от Solrnet, тот факт, что он вообще там, кажется, портит конфигурацию NHibernate.

1 Ответ

0 голосов
/ 14 октября 2011

Хорошо, я разобрался, как остановить эту ошибку. Мы использовали объединенный Solrnet.dll, который включает в себя все типы для подключения к другим контейнерам Ioc, а также для интеграции с NH. Я переключился на использование необработанных двоичных файлов, которые хранят другие Ioc в отдельных сборках, и мы включили только базовые Solrnet.dll и StructureMap.Solrnet.dll, которые в основном решали проблемы. Я все еще должен был обязательно включать Microsoft.Patterns.ServiceLocater, так как базовый Solrnet.dll все еще разоблачает это. Не идеально, так как мы не используем его, но лучше, чем необходимость в куче других сборок.

...