Инициализатор типа для NHibernate.Cfg.Configuration вызвал исключение.

Я использую FluentNHibernate и на этапе настройки получаю следующую ошибку:

Вот конфигурация:

общедоступная статическая ISessionFactory CreateSessionFactory () {return Fluently.Configure (). База данных (MsSqlConfiguration.MsSql2000.ConnectionString (c => c.FromConnectionStringWithKey ("HighOnCodingConnectionString"))) .Mappings (m =>
m.FluentFluentOndOs (m =>
m.Flu )) .BuildSessionFactory (); }

И вот ошибка:

[сбой] when_instantiating_a_session_factory.should_be_able_to_create_a_session_factory TestCase 'when_instantiating_a_session_factory.should_be_able_to_create_a_session_factory' не удалось: инициализатор типа для 'NHibernate.Cfgrow.Configuration. Сообщение System.TypeInitializationException: инициализатор типа для NHibernate.Cfg.Configuration вызвал исключение. Источник: NHibernate StackTrace: в NHibernate.Cfg.Configuration..ctor () c: \ FluentNHibernate \ src \ FluentNHibernate \ Cfg \ FluentConfiguration.cs (25,0): в FluentNHibernate.Cfg.FluentConfiguration..ctor () c: \ FluentNHibernate \ src \ FluentNHibernate \ Cfg \ Fluently.cs (16,0): в FluentNHibernate.Cfg.Fluently.Configure () C: \ Projects \ highoncodingmvc \ src \ highoncoding \ src \ HighOnCoding.BusinessObjects \ Factories \ Factories \ Factories \ Factories 17,0): в HighOnCoding.BusinessObjects.Factories.SessionFactory.CreateSessionFactory () C: \ Projects \ highoncodingmvc \ src \ highoncoding \ src \ HighOnCoding.TestSuite \ Configuration \ TestFluentNHiberate.cs (17,0): в HighOnCoding. Configuration.when_instantiating_a_session_factory.should_be_able_to_create_a_session_factory () Внутреннее исключение System.IO.FileLoadException Сообщение: обнаруженное определение манифеста сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040) Источник: NHibernate StackTrace: в NHibernate.Cfg.Configuration..cctor ()

Вот информация из журнала FusionLog:

* Запись в журнале подшивки сборки (21.06.2009, 12:49:38) *

Операция не удалась. Результат привязки: hr = 0x80070002. Система не может найти указанный файл.

Диспетчер сборки загружается из: c: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ mscorwks.dll Запускается под исполняемым файлом C: \ Projects \ highoncodingmvc \ src \ highoncoding \ src \ HighOnCodingConsole \ bin \ Debug \ HighOnCodingConsole.exe - - Подробный журнал ошибок следует.

=== Информация о состоянии предварительной привязки === LOG: User = D9SKQBG1 \ AzamSharp LOG: DisplayName = NHibernate.XmlSerializers, Version = 2.0.1.4000, Culture = нейтральный, PublicKeyToken = aa95f207798dfdb4, processorArchitecture = MSIL (полностью заданный) LOG: Appbase = file: /// C: / Projects / highoncodingmvc / src / highoncoding / src / HighOnCodingConsole / bin / Debug / LOG: Initial PrivatePath = NULL LOG: Dynamic Base = NULL LOG: Cache Base = NULL LOG: AppName = NULL

Вызывающая сборка: System.Xml, Version = 2.0.0.0, Culture = нейтральный, PublicKeyToken = b77a5c561934e089.

ЖУРНАЛ: Эта привязка начинается в контексте загрузки по умолчанию. ЖУРНАЛ: использование файла конфигурации приложения: C: \ Projects \ highoncodingmvc \ src \ highoncoding \ src \ HighOnCodingConsole \ bin \ Debug \ HighOnCodingConsole.exe.Config LOG: использование файла конфигурации компьютера из c: \ WINDOWS \ Microsoft.NET \ Framework \ v2 .0.50727 \ config \ machine.config. ЖУРНАЛ: ссылка после политики: NHibernate.XmlSerializers, версия = 2.0.1.4000, культура = нейтральная, PublicKeyToken = aa95f207798dfdb4, processorArchitecture = MSIL LOG: поиск GAC завершился неудачно. ЖУРНАЛ: попытка загрузки нового файла URL: /// C: /Projects/highoncodingmvc/src/highoncoding/src/HighOnCodingConsole/bin/Debug/NHibernate.XmlSerializers.DLL. ЖУРНАЛ: попытка загрузки нового файла URL: /// C: /Projects/highoncodingmvc/src/highoncoding/src/HighOnCodingConsole/bin/Debug/NHibernate.XmlSerializers/NHibernate.XmlSerializers.DLL. ЖУРНАЛ: попытка загрузки нового файла URL: /// C: /Projects/highoncodingmvc/src/highoncoding/src/HighOnCodingConsole/bin/Debug/NHibernate.XmlSerializers.EXE. ЖУРНАЛ: попытка загрузки нового файла URL: /// C: /Projects/highoncodingmvc/src/highoncoding/src/HighOnCodingConsole/bin/Debug/NHibernate.XmlSerializers/NHibernate.XmlSerializers.EXE. ЖУРНАЛ: все попытки проверки URL-адресов завершились неудачно.


person azamsharp    schedule 21.06.2009    source источник


Ответы (2)


Похоже, вы скомпилировали одну версию сборки, но во время выполнения она находит другую и жалуется. Я предлагаю вам включить ведение журнала Fusion, чтобы поработать что происходит - в частности, точная сборка, вызывающая проблемы!

person Jon Skeet    schedule 21.06.2009
comment
Но как такое возможно! Я только что получил DLL с веб-сайта FluentNHibernate и вручную добавил ссылку на все сборки! - person azamsharp; 21.06.2009
comment
Это может быть загрузка сборки из GAC во время выполнения. Лучший способ узнать это - использовать ведение журнала слияния ... - person Jon Skeet; 21.06.2009
comment
Странно то, что я просто добавил консольное приложение и использовал тот же код для настройки фабрики сеансов, и он работал нормально, без ошибок. - person azamsharp; 21.06.2009
comment
Я отредактировал исходное сообщение, чтобы включить в него информацию журнала из Fusion. Похоже, виноват NHibernate.XmlSerializers, но эта сборка не включена в загрузку FluentNHibernate! - person azamsharp; 21.06.2009
comment
Я также попробовал вставить код в базу данных, и он без проблем работал с консольным приложением! - person azamsharp; 21.06.2009
comment
Опять странная вещь !!! Я просто удалил все сборки из тестового проекта, кроме NHibernate, после чего все заработало и тест прошел! Эта проблема должна быть задокументирована командой FluentNHibernate! - person azamsharp; 21.06.2009
comment
Что поддержит ответ Джона. Это тоже следует принять как ответ. - person Mike Cole; 30.12.2010

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

https://forum.hibernate.org/viewtopic.php?p=2399679

Из сообщения:

«Мой отладчик в Visual Studio был настроен на отключение всех исключений, настройка параметров исключения устранила мою проблему».

Также привел меня к:

http://www.codewrecks.com/blog/index.php/2008/02/13/sgenexe-and-strongly-named-assemblies/

«После некоторого поиска я обнаружил, что сборка xxxx.XmlSerializers - это предварительно сгенерированная сборка, которую xmlserializers ищет, прежде чем пытаться создать ее во время выполнения ...»

person redman    schedule 18.10.2011