2008-12-09 4 views
4

У меня возникла эта ошибка при использовании Enterprise Library версии 3.1 мая 2007 года. Мы разрабатываем продукт и имеем общий каталог lib под каталогом Subversion Trunk.System.IO.FileLoadException

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

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

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

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

RK

ответ

7

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

Также, fuslogvw.exe. КАЖДЫЙ. ВРЕМЯ.

0

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

0

Прочтите here, чтобы начать сборку загрузки.

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

Для «локализованной Ассамблеи проявляется определения с именем [yourAssembly] не соответствует ссылке на сборку» сообщения (для HRESULT FUSION_E_REF_DEF_MISMATCH, 0x80131040): Журнал Fusion будет говорить , какая часть ссылка на сборку не соответствует тому, что было найдено. Это будет именем, культурой, открытым ключом (или токеном) или версией (если найденная сборка была сильно названной).

1

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

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

Microsoft.Practices.EnterpriseLibrary.Data, Version = 3.1.0.0, Culture = нейтрально, PublicKeyToken = нуль

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

Microsoft.Practices.EnterpriseLibrary.Data, Version = 3.1.0.0, культура = нейтральной, PublicKeyToken = fa03fef243232