Упрямая сборка, неправильный ключ? Или это проблема с сильным именем?

Я использую две сборки DLL от Microsoft, чтобы сравнить Xml. XmlComparer.cs использует Microsoft.XmlDiffPatch, и эти две ссылки правильно добавлены в Visual Studio. Однако я получаю это сообщение:

Ошибка: не удалось загрузить файл или сборку 'XmlDiffPatch, версия =1.0.8.28, культура = нейтральная, PublicKeyToken=b03f5f7f11d50a3a' или одна из ее зависимостей. Определение манифеста сборки locate d не соответствует ссылке на сборку. (Исключая из HRESULT: 0x80131040) исключение: System.IO.FileLoadException: не удалось загрузить файл или сборку 'XmlDiff Patch, версия =1.0.8.28, культура = нейтральная, PublicKeyToken=b03f5f7f11d50a3a' или e из ее зависимостей. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040) Имя файла: 'XmlDiffPatch, версия =1.0.8.28, культура = нейтральная, PublicKeyToken = b03f 5f7f11d50a3a' в XmlCompareLib.XmlComparer.Compare(сравнение строк Options, String sourceX mlFileFNameFileFileNameFringFileNameFileNameFringFileNameFringFileNameFringFameNameFringFameNameFringFame_Name):\Users\xx\Documents\Visual Studio 2010\Projects\ConsoleApplication3\ConsoleAp plication3\XmlComparer.cs: строка 214 в Ionic.Zip.Examples.ReadZip.Main(String[] args) в C:\Users\xx\Documents\Visual Studio 2010\ Проекты \ConsoleApplication3\ConsoleApplication3\Pr ogram.cs: строка 44

WRN: регистрация привязки сборки выключена. Чтобы включить ведение журнала ошибок привязки сборки, задайте для параметра реестра [HKLM\Software\Md icrosoft\Fusion!EnableLog] (DWORD) значение 1. Примечание. Существует некоторая потеря производительности, связанная с блокировкой ошибки привязки сборки. Чтобы отключить эту функцию, удалите значение реестра [HKLM\Software\Microsoft\Fus ion!EnableLog].

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

1 ответ

Решение

Обычно в этот момент я включаю регистратор Fusion и регистрирую все привязки. Логи Fusion обычно немного яснее о том, что он делает.

Чтобы включить ведение журнала Fusion, вы можете открыть командную строку VisualStudio и запустить "fuslogvw.exe". Шахта заканчивается установкой в:

C: \ Program Files \ Microsoft SDKs \ Windows \ v7.1 \ Bin \ NETFX 4.0 Tools \ x64 \ FUSLOGVW.exe

но это может отличаться в зависимости от вашей установки.

Затем вы нажимаете кнопку "Настройки" в инструменте "шляпа" и включаете ведение журнала, переключая переключатель, затем запуская свое приложение, затем нажимая "Обновить" в Fusion Logger, и он покажет вам все привязки, которые произошли (и неудачные).).

Не забудьте вернуться в окно настроек и отключить ведение журнала, когда вы закончите:)

Другие вопросы по тегам