2010-11-16 3 views
2

Я преследую недавно возникшую ошибку загрузки/привязки сборки. Во время моего расследования я нашел противоречивое противоречие (если я правильно разбираю журнал слияния).Ошибка связывания сбоев - журнал слияния и несоответствие браузера зависимостей

Исключение, которое выбрасывается моим приложением при запуске состояний:

{ "Не удалось загрузить файл или сборку«Microsoft.Practices.CompositeUI, Version = 1.0.51205.0, Culture = нейтрально, PublicKeyToken = 31bf3856ad364e35 (исключение из HRESULT: 0x80131040) »:« Microsoft.Practices.CompositeUI, Version = 1.0.51205.0, Culture = нейтральный, PublicKeyToken = 31bf3856ad364e35 »}, а также один из его зависимостей.

Некоторые недавние изменения проекта, которые я сделал, не должны требовать сильно названная сборка «Microsoft.Practices.CompositeUI». Убедившись, что все мои проекты решения действительно ссылаются на неподписанные сборки, я затем активировал dependency browser, чтобы убедиться, что я ничего не пропустил. Все проверено, и я подтвердил, что у меня не было никаких «старых» ссылок на старые сборки. Конечно, я убрал и перестроил свой проект.

Затем я исследовал и запустил средство просмотра журнала слияния (Fuslogvw.exe) и настроил его для отображения ошибок привязки. Я просмотрел журнал и обнаружил ошибку привязки. В журнале подробностей находится путаница; он перечисляет «Calling assembly» как сборку, которая не имеет привязок NO (которые я могу определить) к отсутствующей сборке. Ах, трудно объяснить. Вот лог:

* Сборка Binder Вход Вход (11/15/2010 @ 7:00:18 PM) *

Операция не удалась.

Bind result: hr = 0x80131040. Нет описания.

Ассамблеи менеджер загружается из: C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ mscorwks.dll Запуск под исполняемому C: \ Program Files \ PMT \ Office App \ 1.1.1.7 \ OfficeApp.exe

--- Ниже приведен подробный журнал ошибок.

=== Информация о состоянии Pre-связывать ===

LOG: Пользователь = PMD \ sklett

LOG: DisplayName = Microsoft.Practices.CompositeUI, Version = 1.0.51205.0, культура = нейтральной, PublicKeyToken = 31bf3856ad364e35 (Полностью указан)

LOG: Appbase = файл: /// C:/Program Files/PMT/Офис App/1.1.1.7/

LOG: Initial PrivatePath = NULL

LOG: Dynamic Base = NULL

LOG: Cache Base = NULL

LOG: AppName = OfficeApp.exe

Вызов сборки: Microsoft.Practices.EnterpriseLibrary.Common, Version = 4.1.0.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35.

===

LOG: Эта привязка начинается в контексте загрузки по умолчанию.

LOG: Использование файла конфигурации приложения: C: \ Program Files \ PMT \ Office App \ 1.1.1.7 \ OfficeApp.exe.config

LOG: Использование файла конфигурации машины из C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Config \ machine.config.

LOG: эталонная пост-политика: Microsoft.Practices.CompositeUI, Version = 1.0.51205.0, Culture = нейтрально, PublicKeyToken = 31bf3856ad364e35

LOG: GAC Поиск был неудачным.

LOG: Попытка загрузки нового файла URL: /// C:/Program Files/PMT/Office App/1.1.1.7/Microsoft.Practices.CompositeUI.DLL.

LOG: сборка была успешной. Попытка настройки файла: C: \ Program Files \ PMT \ Office App \ 1.1.1.7 \ Microsoft.Practices.CompositeUI.dll

LOG: переход в фазу установки запуска от источника.

LOG: Имя Ассамблеи: Microsoft.Practices.CompositeUI, Version = 1.0.51205.0, Culture = нейтральна, PublicKeyToken = нуль

ПРПЖДЫ: Сравнивая имя сборки в результате несоответствия: ОТКРЫТЫЙ КЛЮЧ ЗНАК

ERR: Ссылка на сборку не соответствует найденному определению сборки.

ERR: Не удалось выполнить настройку сборки (hr = 0x80131040). Исследование прекращено.

Теперь вызывающий узел «Microsoft.Practices.EnterpriseLibrary.Common» не имеет в списке (через браузер зависимостей) зависимостей в «Microsoft.Practices.CompositeUI». Не только это, но и не должно быть.

журнал слияния остановил меня на моих следах, журнал фьюжн привел к CONFusion! ; 0)

Надеюсь, я предоставил достаточно информации для какого-то мудрого эксперта, который подскажет мне, что мне не хватает.

+0

Почему вы ожидаете, что не будете иметь сильную ссылку на Microsoft.Practices.CompositeUI? Вы перекомпилировали его самостоятельно без SNK и изменили все ваши проектные ссылки? – Jeff

+1

Кроме того, я не думаю, что у вас есть сильная именованная копия Microsoft.Practices.CompositeUI в вашем GAC? – Jeff

+0

@ JeffN825 - «Вы перекомпилировали его самостоятельно без SNK и изменили все ваши проектные ссылки?» Да, это именно то, что я сделал. Я также проверил GAC (gacutil -l), и нет никаких списков P & P. –

ответ

1

Я не уверен, что ответ уместен или дополнительный комментарий, пожалуйста, извините меня, если я выбрал неверно. ; 0)

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

Благодаря JeffN825 за то, что он придерживался и предлагал помощь, я проголосовал за некоторые ваши комментарии.

+0

Иногда я видел, что очень надоедливые справочники (и их содержимое) прилипают даже после чистки и восстановления, пока я фактически не перезапущу VS, а затем очистку и перестройку ... Рад, что это исправлено! – Jeff

Смежные вопросы