Проект, над которым я работаю, использует Fluent Nhibernate и NHibernate для подключения наших приложений к нашим базам данных.
Это одно приложение прекрасно работает в Visual Studio в «Release Mode» или «Debug Mode», но как только вы идете и устанавливаете приложение через MSI-файл, мы получаем эту ошибку:
"Инициализатор типа для« NHibernate.Cfg.Configuration »бросил
исключение "
Обычно, когда мы получаем эту ошибку, это происходит из-за неправильного отображения или, может быть, строки подключения, но здесь это не так. Как я уже упоминал выше, проект отлично работает в visual studio, но не в установленной версии. .Dll являются одинаковыми версиями во всех случаях.
Это действительно загоняет меня в тупик, и я надеюсь, что у кого-то есть какие-либо идеи или он уже сталкивался с этой проблемой.
Спасибо и дайте мне знать, если вам нужны какие-либо данные от моего конца.
Обновление:
На самом деле удалось запустить, подключившись к процессу (я установил отладочную версию). Так что я смог увидеть внутреннее исключение:
«Не удалось загрузить файл или сборку» log4net, Версия = 1.2.10.0,
Культура = нейтральная, PublicKeyToken = 1b44e1d426115821 'или одна из ее
зависимостей. Определение манифеста расположенной сборки не
сопоставьте ссылку на сборку. (Исключение из HRESULT:
0x80131040) "строка.
Мы используем отчеты NHibernate и Crystal для vs2010 в нашем приложении, и в проекте установки есть две ссылки на log4net. Оба v1.2.10, но оба имеют токены разного открытого ключа.
Мне кажется, я решил это.
Как я уже говорил, проект будет работать в visual studio, но не после его установки. Итак, я заметил сегодня утром, что в моей папке обнаруженных зависимостей было два объекта «log4net.dll». Оба log4net.dll были одной и той же версии "1.2.10", но оба использовали разные токены открытого ключа. Это показалось мне очень странным. У меня была та же версия, но у обоих были разные ключи шифрования.
В любом случае я исключил один из двух dll и снова установил проект, и теперь он запущен. Я надеюсь, что это ничего не затронет. Так что это не совсем решено, но сейчас это работает, и это то, что мне было нужно.
Два ключа для справки:
692FBEA5521E1304
1B44E1D426115821
Спасибо NOtherDev и Shane Coutrille за ваш вклад. Думаю, я не сделаю это ответом на вопрос, так как это не идеальное решение.