“Исключение System.IO.FileNotFoundException:Не удалось загрузить файл или сборку”, когда сборка действительно существует

StackOverflow https://stackoverflow.com/questions/1540887

Вопрос

В рамках нашего перехода с .net 1.1 на .net 3.5 нам пришлось изменить несколько библиотек DLL vender.

Один из них доставляет нам проблемы только в 1 месте из 4, в которых мы его используем:

Проблемное место - это проект Windows form, который использует отражение для динамической загрузки некоторых библиотек DLL, запускающих длительные процессы.Одним из таких длительно выполняющихся процессов является агент, который полагается на одну из наших библиотек vender DLL

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

Кто-нибудь сталкивался с ситуацией, когда среда выполнения .net 2.0 отказывается загружать подобную сборку?И если да, то как мы могли бы устранить проблему?

Дополнительная информация:

Конкретным поставщиком в данном случае является dtSearch, и это граница, на которой выдается ошибка:

Private Sub BuildIndex()
    SetIndexOptions()
    ExecuteIndexJob()
End Sub

Private Sub SetIndexOptions()
    'Body removed for brevity
End Sub

Ссылка на библиотеку содержится в setIndexOptions. BuildIndex() вводится, но исключение возникает при вызове setIndexOptions .Функция на самом деле никогда не вводится.

Это было полезно?

Решение 3

Оказывается, опция компиляции по умолчанию изменилась с VS2003 на VS2008, и она компилировалась с неправильной разрядностью:\ Теперь я чувствую себя немного глупо!

Другие советы

Если у вас все еще возникают проблемы, вы можете использовать Просмотр журнала привязки сборки (Fuslogvw.exe) чтобы определить, какие сборки загружаются вашим приложением.Этот инструмент является частью .NET Framework.Это предоставит вам подробную информацию обо всех зависимых сборках.

Я использовал это в прошлом при работе со сторонними сборками, очень полезно

Исключение FileNotFoundException может быть вызвано, даже если сборка действительно существует, если не удалось загрузить одну из зависимых сборок.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top