В чем проблема с NHibernate 2.1.0? Я всегда получаю ошибку!

В этом посте я читал, что вся зависимость 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, Я думаю, что это правильная конфигурация, и она должна работать. Но это не работает. Я провел много времени за этим.

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

1 ответ

Решение

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

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

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

Console.WriteLine(Directory.GetCurrentDirectory());

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

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

Другие вопросы по тегам