#c_sharp #net
При запуске приложения на другом компьютере возникате ошибка: "Необработанное исключение. Не удалось загрузить файл или сборку", хотя на компьютере, на котором ведется разработка ничего подобного нет. Все dll находятся в папке с программой. Подскажите пожалуйста - что не так?
Ответы
Ответ 1
Дело в том, что если у C++/CLI-сборки не находится одна из нативных зависимостей, загрузить её невозможно. В случае управляемых зависимостей, загрузка откладывается до момента первого использования, и вы получаете сообщение о том модуле, который невозможно загрузить. Но нативные зависимости грузятся сразу. Раз вы их с собой не таскаете, то они должны быть проинсталлированы на целевой системе, а их отсутствие приводит к невозможности загрузить модуль. Для определения недостающих зависимостей имеет смысл использовать Dependency Walker (обычно известный как depends.exe).Ответ 2
Посмотрел чем отличаются конфиги компьютеров и установил на компьютер, на котором выдавало ошибку - Microsoft Visual C++ 2017 Redistributable (x64). И все заработало, ошибка исчезла. Что за магия?
Комментариев нет:
Отправить комментарий