В чем проблема с NHibernate 2.1.0? Я всегда получаю ошибку! - PullRequest
0 голосов
/ 21 июля 2009

Я читал в этом посте, что вся зависимость ProxyFactory была удалена с помощью интерфейса в этом посте . Поэтому вам нужно указать, какую реализацию использовать в файле hibernate.cfg.xml. У меня есть эта конфигурация:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
  <session-factory>
    <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
    <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
    <property name="connection.connection_string">Data Source=.\SQLEXPRESS;Initial Catalog=MYDB;Integrated Security=true</property>
    <property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
    <property name='proxyfactory.factory_class'>NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
  </session-factory>
</hibernate-configuration>

Я добавил ссылку на NHibernate.ByteCode.Castle.dll. Когда я запускаю тест с использованием MBunit, я получаю сообщение об ошибке, что моя папка развертывания должна содержать либо NHibernate.ByteCode.Castle.dll, либо NHibernate.ByteCode.LinFu.dll. Я думаю, что это правильная конфигурация, и она должна работать. Но это не работает. Я провел много времени за этим.

P.S .: Когда я загружал NHibernate, проект NHibernate.ByteCode.Castle не был построен. Я добавил проект в решение и построил его. Затем я сослался на сборку.

1 Ответ

2 голосов
/ 21 июля 2009

У меня была такая же ситуация не так давно.

Когда вы говорите, что добавили ссылку, это был настоящий проект или тестовый проект? Это должно быть в обоих. Кроме того, убедитесь, что для параметра «Копировать локальный» задано значение true в свойствах (F4) ссылки.

Другой подход, который я выбрал, чтобы проверить, что если dll находится в каталоге, из которого выполняется приложение, был вызван следующим образом перед любой из конфигураций.

Console.WriteLine(Directory.GetCurrentDirectory());

В моей ситуации я узнал, что при использовании ReSharper для выполнения тестов он работал в месте, отличном от ожидаемого, и не содержал dll. Создание Чистого Решения и перестройка, казалось, исправили проблему.

Надеюсь, это даст вам пару вещей для проверки.

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