Страницы

Поиск по вопросам

пятница, 1 февраля 2019 г.

Программа “Не видит” dll

Приложение, написанное на C# и dll на C++/CLI. dll-ка подключена к проекту на C# через references. В коде вызываются методы классов объявленных в dll'ке. На моём компе всё работает. На компе коллег так же (у всех примерно одинаковый конфиг: x64 Core i3-i5 Win8.1-10) А на удалённой машине (Atom 1.5 Win7 sp1 x86) пишет
Не удалось загрузить файл или сборку "WinPrint.dll" либо одну из их зависимостей. Не найден указанный модуль
Файл dll лежит в папке с exeшником. В свойствах проекта для данной dll стоит "копировать локально". Все проекты компилируются под x86. VisualStudio 2015
Причём что, запускаю на своём компе regsvr32 и регаю dll-видит, но говорит что неверный формат (что корректно) а на удалённой машине пишет
Не найден указанный модуль
Почему это происходит и как это исправить?


Ответ

Возможные причины:
1) Разная разрядность ОС и конфигурация билда.
2) Зависимости .dll, у меня было нечто подобное, отсутствовала зависимость, но p\invoke .NET-а долбал сообщение об ошибке что не видит подключаемую .dll, а не ее зависимость. Советую на удаленном ПК проверить зависимости нативной .dll утилитой Dependency Walker

Комментариев нет:

Отправить комментарий