Подсказки, чтобы помочь отладить “Не могли загрузить файл или блок X или одну из его зависимостей”

Я ищу подсказки/предложения/понимание, чтобы помочь отладить по проблеме загрузки приложения; не Мог загрузить файл или блок...

Решением/проектом, где я испытываю эту проблему, является преобразование из рабочей копии в Visual Studio 2008 к Предвыпускной версии Visual Studio 2010 года. Процесс преобразования, казалось, был успешен, и все проекты решения установлены на Платформу 4.

Исключение находится на стороннем компоненте (библиотека обработки графики), но любые ответы могли возможно помочь другим с любым неприятным DLL.

Не мог загрузить файл или блок 'Aurigma.GraphicsMill.DLL' или одна из его зависимостей. не действительное приложение Win32. (Исключение из HRESULT: 0x800700C1)

То, что сбивает с толку об этом исключении, является дополнительным текстом: не действительное приложение Win32.

Полное отслеживание стека исключительной ситуации произошло на PasteBin, но, кажется, не проливает намного больше света на проблему...

Что я попробовал до сих пор без успеха:

  1. Простой чистый, восстановите, перезапустите комбинации RC Visual Studio 2010.
  2. Удаление и передобавление рассматриваемого DLL.
  3. Переключение "копии, локальной" для истины и лжи на рассматриваемом DLL.
  4. Подтверждение, что после "успешной сборки" рассматриваемый DLL появляется в bin\debug папке.
  5. Проверка любые ненужные ссылки на рассматриваемый DLL (ни одно найденное).
  6. Связанный файл лицензии для рассматриваемого DLL находится в том же каталоге с ним.

У меня также не было удачи с ним поражающий точки останова отладчика в загрузку приложения.

24
задан Nick Josevski 15 February 2010 в 01:27
поделиться

3 ответа

У меня было аналогичное исключение, когда мой исполняемый проект был установлен на Any CPU и имел ссылку на dll, скомпилированную с x86.

Попробуйте установить исполняемый файл на x86 и посмотрите, работает ли он. Если он не попробует журнал слияния , чтобы получить более подробную информацию об ошибке.

6
ответ дан 28 November 2019 в 22:59
поделиться

Совет

Одним из направлений исследования, которое мы предприняли, которое решило часть наших проблем, но не общую проблему, было сочетание сборок x86 (32-бит) и x64 (64-бит) ссылаясь друг на друга.

Убедитесь, что у вас нет 32-битных сборок, зависящих от / ссылающихся на 64-битные сборки.

6
ответ дан 28 November 2019 в 22:59
поделиться

Я обнаружил, что причина этой проблемы в том, что из-за того, что вы перешли на .net v4, теперь вы используете новый пул приложений в IIS7 специально для asp.net v4 (сам пул называется «ASP.NET v4.0»)

В разделе дополнительных настроек пула приложений установите для параметра «Разрешить 32-разрядные приложения» значение true и вашу проблемную DLL теперь будет загружаться, как ожидалось.

Очевидно, вы должны сделать то же самое, если ваше веб-приложение имеет собственный пул приложений.

Если вы используете Windows Server 2008 (не R2), см. этот пост о том, как назначить правильные разрешения для удостоверения пула приложений

35
ответ дан 28 November 2019 в 22:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: