System.IO.FileLoadException - PullRequest
       26

System.IO.FileLoadException

4 голосов
/ 09 декабря 2008

Я получаю эту ошибку при использовании версии Enterprise Library 3.1, май 2007 г. Мы разрабатываем продукт и располагаем общим каталогом lib под каталогом Subversion Trunk

<> \ Trunk \ Lib \, в который мы помещаем все сторонние библиотеки DLL. Внутри этого у нас есть Microsoft \ EnterpriseLibrary \ v3.1, в которую мы скопировали все библиотеки из \ Program Files \ Microsoft Enterprise Library May2007 \ bin. Все работало правильно, пока один из разработчиков не установил исходный код на эту машину. В конце установки исходного кода были скопированы некоторые библиотеки DLL, и, как только это было сделано, он больше не может запускать проект. Он всегда получает эту ошибку

'Microsoft.Practices.EnterpriseLibrary.Data, версия = 3.1.0.0, культура = нейтральная, PublicKeyToken = null' или одна из ее зависимостей. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040) '

В чем здесь проблема? Я думал, что когда исходный код был установлен, он должен был просто собрать все и скопировать в каталог bin внутри родительского каталога исходного кода. Также мы скопировали каталог Dlls из библиотеки Microsoft Enterprise Library May 2007 \ bin в каталог разработки нашего продукта и ссылки на наш проект с установленным флагом copylocal.

Может ли кто-нибудь помочь мне здесь

RK

Ответы [ 4 ]

7 голосов
/ 09 декабря 2008

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

Также fuslogvw.exe . КАЖДЫЙ. TIME.

1 голос
/ 09 декабря 2008

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

Перед компиляцией своего кода убедитесь, что он добавляет ссылку на подписанные библиотеки DLL.

Microsoft.Practices.EnterpriseLibrary.Data, версия = 3.1.0.0, культура = нейтральная, PublicKeyToken = ноль

должно быть что-то вроде:

Microsoft.Practices.EnterpriseLibrary.Data, версия = 3.1.0.0, культура = нейтральная, PublicKeyToken = fa03fef243232

0 голосов
/ 09 декабря 2008

Чтение здесь , чтобы начать отладку загрузки сборки.

Короче говоря, вам нужно проверить журнал Fusion для получения дополнительной информации.

Для "Манифеста обнаруженной сборки" определение с именем [yourAssembly] не совпадает со ссылкой на сборку сообщение (для hresult FUSION_E_REF_DEF_MISMATCH, 0x80131040): журнал Fusion скажет какая часть сборки ссылки не удалось найти то, что было найдено. Это будет название собрания, культура, открытый ключ (или токен) или версия (если найденное собрание было сильно название).

0 голосов
/ 09 декабря 2008

возможно, вам следует проверить сборку и FileVersion библиотеки DLL. если они не совпадают, это исключение может возникнуть.

...