Я преследую недавно возникшую ошибку загрузки/привязки сборки. Во время моего расследования я нашел противоречивое противоречие (если я правильно разбираю журнал слияния).Ошибка связывания сбоев - журнал слияния и несоответствие браузера зависимостей
Исключение, которое выбрасывается моим приложением при запуске состояний:
{ "Не удалось загрузить файл или сборку«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)
Надеюсь, я предоставил достаточно информации для какого-то мудрого эксперта, который подскажет мне, что мне не хватает.
Почему вы ожидаете, что не будете иметь сильную ссылку на Microsoft.Practices.CompositeUI? Вы перекомпилировали его самостоятельно без SNK и изменили все ваши проектные ссылки? – Jeff
Кроме того, я не думаю, что у вас есть сильная именованная копия Microsoft.Practices.CompositeUI в вашем GAC? – Jeff
@ JeffN825 - «Вы перекомпилировали его самостоятельно без SNK и изменили все ваши проектные ссылки?» Да, это именно то, что я сделал. Я также проверил GAC (gacutil -l), и нет никаких списков P & P. –