Ошибка во время выполнения при попытке запустить Fluent NHibernate пример учебника - PullRequest
1 голос
/ 18 августа 2010

Я работал над руководством Fluent NHibernate на http://wiki.fluentnhibernate.org/Getting_started, и проект компилируется нормально.

Тем не менее, я получаю ошибку во время выполнения, и я не могу ее исправить.Ошибка происходит в методе CreateSessionFactory, который вы можете увидеть в руководстве.Вот оно:

private static ISessionFactory CreateSessionFactory()
{
    return Fluently.Configure()
        .Database
        (
            SQLiteConfiguration.Standard
                .UsingFile(DbFile)
        )
        .Mappings(m => m.FluentMappings.AddFromAssemblyOf<FluentNHibernateSample.Program>())
        .ExposeConfiguration(BuildSchema)
        .BuildSessionFactory();

}

Я думаю, что самая полезная вещь, которую нужно сделать, - это дать вам цепочку исключений (это реальное слово) от Внешнего исключения до самого внутреннего исключения:

An invalid or incomplete configuration was used while creating a SessionFactory. Check PotentialReasons collection, and InnerException for more detail.
    An invalid or incomplete configuration was used while creating a SessionFactory. Check PotentialReasons collection, and InnerException for more detail.
        Could not compile the mapping document: (XmlDocument)
            persistent class FluentNHibernateSample.Entities.Employee, FluentNHibernate, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null not found
                Could not load file or assembly 'FluentNHibernate, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

В руководстве не было ясно, как настроить ссылку (или, по крайней мере, она кажется неполной на основе самого внутреннего исключения), поэтому я получил скомпилированные сборки из http://fluentnhibernate.org/downloads/releases/fluentnhibernate-1.1.zip и скопировал их в папку libs.Основываясь на поиске ошибки, я установил ссылки на сборки FluentNHibernate, NHibernate и NHibernate.ByteCode.Castle.Я скопировал ВСЕ dll со страницы загрузок в каталог bin и подумал, что все ссылки разрешатся.(Это мое понимание того, как это работает).В любом случае вот список файлов, которые я скопировал в корзину.

Antlr3.Runtime.dll
FluentNHibernate.dll
FluentNHibernate.exe
FluentNHibernate.pdb
FluentNHibernate.vshost.exe
FluentNHibernate.vshost.exe.manifest
FluentNHibernate.xml
Iesi.Collections.dll
Iesi.Collections.xml
log4net.dll
log4net.xml
NHibernate.ByteCode.Castle.dll
NHibernate.dll
NHibernate.xml

Я также скопировал сборку System.Data.Sqlite в корзину.

За свою жизнь я не могу понять, в чем проблема.Я перепробовал все, что мог придумать, и погуглил несколько сообщений об ошибках, но у меня ничего не получилось.

Помогите!Я потратил впустую часы на это.

РЕДАКТИРОВАТЬ
Я поставил исходные файлы для проекта на http://dl.dropbox.com/u/8824836/FluentNHibernateExample.zip. Имейте в виду, что для полной репликации моей среды вам нужнопоместить все файлы из здесь в каталог output / bin.

Seth

Ответы [ 4 ]

5 голосов
/ 01 сентября 2010

Я чувствую себя идиотом для этого, но в конце дня проблема с отображением была вызвана тем фактом, что я назвал проект FluentNHibernate (в моей собственной защите он был в папке SAMPLES), но это стало причиной отображениятерпеть неудачу.

Внутренне Visual Studio по умолчанию присвоил имя сборки FluentNHibernate, что вызвало ошибку времени выполнения.Переименование сборки в ConsoleApplication исправило ее.

Seth

2 голосов
/ 18 августа 2010

Загрузите дистрибутив исходного кода Fluent NHibernate, а затем посмотрите на примеры проектов; Затем вы можете сравнить ссылки, которые есть у этих проектов, с теми, что есть у вас.

0 голосов
/ 18 августа 2010

То, что ваш беглый проект NHibernate компилирует , не означает, что ваше отображение корректно.

Внешнее исключение (для сборки FluentNHibernate может быть красныйсельдь).

Попробуйте закомментировать все ваши отображения nhibernate, кроме самого простого и легкого кусочка - и посмотрите, работает ли он тогда.Если это произойдет, постепенно раскомментируйте вещи, пока не найдете бит, который выходит из строя.

0 голосов
/ 18 августа 2010

Вам также может понадобиться:

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