IntelliLock 1.5 Была сделана попытка загрузить программу с неверным форматом. (Исключение из HRESULT: 0x8007000B)

После выключения в IntelliLock 1.5 один из модулей призмы моего dll перестает загружаться (единицы), появляется сообщение об ошибке: "Была сделана попытка загрузить программу с неверным форматом. (Исключение из HRESULT: 0x8007000B)"

Сначала у меня была ссылка на переносимую библиотеку (.net, Silverlight 4), в которой хранятся некоторые общие объекты. И ошибка была что-то вроде "Не удалось загрузить библиотеку System.Windows, на которую есть ссылки", хотя в переносимой библиотеке не было пользовательского интерфейса и не было ссылки на System.Windows dll. Но после полдня настройки IntelliLock и попытки выяснить, в чем проблема, единицы начинают падать с ошибкой "Была предпринята попытка загрузить программу с неверным форматом. (Исключение из HRESULT: 0x8007000B)".

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

Я использую.Net 4 Client Profile. WPF, C#, Призма 4, единство.

Есть идеи как это исправить?

2 ответа

Решение

Мы столкнулись с подобной (??) проблемой некоторое время назад, поэтому я предлагаю:

1) Проверьте, удовлетворены ли все зависимости. Запустите DependencyWalker и убедитесь, что нет красных линий - ничего не пропало (пожалуйста, прочтите некоторую документацию, потому что иногда он помечает, например, как IEShims.dll как отсутствующий, но вам это не нужно) - Используйте правильную версию DependecyWalker (x86/x64) на правильную комп

2) Как Денису Кучерову уже грустно: проверьте, как родительский и / или дочерний (зависимый) объект был скомпилирован. Однажды мы попытались использовать проект.NET, скомпилированный по умолчанию как "Любой ЦП" на 64-битной машине, чтобы загрузить по ссылке C++ DLL, скомпилированную для x86 - без изменений -> исключения, исключения, сбои...

3) Уровень Hardcore - Запустите Process Monitor из Sysinternals и проверьте на наличие каких-либо отсутствующих / не найденных ошибок (если таковые имеются). Это более длинный список иногда...

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

PS Вы упоминаете.Net Client Profile - просто попробуйте один раз с полной.NET Framework и проверьте, помогает ли это - если это так - дважды проверьте, что.NET Client Profile установлен в целевой комп.

Как предположил Руп, это была ошибка InTelliLock. Мне удалось преодолеть это просто отключив настройки блокировки для некоторых библиотек. Хорошим нововведением является то, что проблема была в логике блокировки, а не в запутывании. Потребовалось несколько дней, чтобы решить проблему.

У меня до сих пор нет ответа от службы поддержки, и, как я уже говорил, я этого не ожидал.

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