Ошибка при загрузке одной из зависимых от NHibernate DLL - PullRequest
4 голосов
/ 02 августа 2011

Я создаю приложение, используя NHibernate. Потому что я не мог добавить DLL моей текущей версии NHibernate (я не могу добавить ссылку, когда framework 4.0 является target).

Я пытался заполучить последнюю и самую лучшую в мире, вот что у меня сейчас:

  • NHibernate.dll (3.2.0.4000)
  • NHibernate.ByteCode.Castle (3.0.0.4000)
  • FluentNHibernate.dll (1.2.0.694)
  • Castle.Core (2.5.2.0)
  • Castle.Services.Logging.NLogIntegration (2.5.2.0)
  • Antlr.Runtim (3.1.3.42154)
  • Iesi.Collections (3.2.0.400)

С ними я могу ссылаться и строить свое решение. Я знаю, что есть некоторые проблемы с копированием / загрузкой dll.s, поэтому я сделал их элементами развертывания. Но во время выполнения я (все еще) получаю следующее:

NHibernate.Bytecode.UnableToLoadProxyFactoryFactoryException: невозможно загрузить тип 'NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle' во время настройки класса фабрики прокси. Возможные причины: - Сборка поставщика NHibernate.Bytecode не была развернута. - TypeName, использованное для инициализации свойства proxyfactory.factory_class в разделе фабрики сеансов, сформировано некорректно.

Решение:

Убедитесь, что папка развертывания содержит одну из следующих сборок:

NHibernate.ByteCode.LinFu.dll NHibernate.ByteCode.Castle.dll ---> System.TypeLoadException: метод 'IsProxy' в типе 'NHibernate.ByteCode.Castle.ProxyFactoryFactory' из сборки 'NHibernate.ByteCode.Castle, версия = 3.0.0.4000, культура = нейтральная, PublicKeyToken = aa95f207798dfdb4 'не имеет реализации.

Кто-нибудь думает?

В ответ на ответ Виджая Гилла я решил пойти другим путем.

Пакеты NUGet, универсальный магазин и простые обновления!

Существует пакет FluentNHibernate. Я установил его, но я думаю, что здесь тоже что-то не так:

Тестовый метод CoreDatabaseTests.CreateCoreDatabase выдал исключение:

System.IO.FileLoadException: Не удалось загрузить файл или сборку 'NHibernate, Версия = 3.2.0.4000, Культура = нейтральная, PublicKeyToken = aa95f207798dfdb4' или одна из ее зависимостей. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040) ---> System.IO.FileLoadException: не удалось загрузить файл или сборку 'NHibernate, версия = 3.1.0.4000, культура = нейтральная, PublicKeyToken = aa95f207798dfdb4' или одна из ее зависимостей. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку.

Ответы [ 2 ]

5 голосов
/ 02 августа 2011

С NHibernate 3.2 вам больше не нужен NHibernate.ByteCode.Castle, что значительно упрощает ваше дерево зависимостей.

2 голосов
/ 02 августа 2011

Получение компонентов из разных мест в таких случаях не очень хорошая идея, вы все компилируете с нуля. Ну, это мой опыт до сих пор. Fluent NH не был обновлен до NH 3.2GA.

Я бы посоветовал вам скачать беглый NH и придерживаться версии, которая идет с ним, ИЛИ, если вы хотите быть на переднем крае, скачать исходники беглого NH и скомпилировать со ссылками на последние NH (3,2 ГГА).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...