DllNotFoundException для .dll, которая находится в текущей папке - PullRequest
2 голосов
/ 13 сентября 2011

Я получаю исключение System.DllNotFoundException для DLL, которая находится в той же папке, что и исполняемый файл, когда мое приложение пытается использовать функцию, которая существует в DLL. Странно то, что это происходит только на ПК одного пользователя; он отлично работает на моем ПК разработчика и отлично работает на одном компьютере не разработчика, на котором я его пробовал. Кроме того, в папке есть другие библиотеки DLL, которые найдены и используются правильно. Рассматриваемая DLL - это нативная библиотека, на которую ссылается мое приложение через другую DLL, которая является оболочкой c # для нативной библиотеки.

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

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

Ответы [ 2 ]

4 голосов
/ 13 сентября 2011

Для неуправляемых библиотек вы можете использовать Dependency Walker , чтобы найти зависимости.

0 голосов
/ 13 сентября 2011

Я бы предложил использовать ILSpy, чтобы сначала открыть dll и просмотреть ее зависимости.

...