DllNotFoundException для библиотеки C ++ из приложения .NET на некоторых компьютерах

У нас есть приложение .NET, которое использует библиотеку C ++ через [DllImport]. Он отлично работает на многих компьютерах (тысячи клиентов), за исключением 3 компьютеров. На всех них установлена ​​Windows 10 (другие платформы Windows 10 работают нормально).

Исключение составляет:

System.DllNotFoundException: Unable to load DLL 'Helper.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)

Эта dll помещается в ту же папку, что и основной исполняемый файл.
Что уже сделано, чтобы исправить:

  • положить DLL в папку system32;

  • установлена ​​другая версия vc redist;

  • запустить от имени администратора.

Результат тот же.

Есть идеи, ребята?

Заранее спасибо!

0

Решение

Не помещайте DLL в системный каталог. Вы не должны помещать туда файлы. Поместите DLL в тот же каталог, что и исполняемый файл.

Если вы делаете это, и система сообщает DllNotFoundException это означает, что одна из зависимостей DLL не может быть найдена. Далее вам нужно выяснить, что это за зависимости, и убедиться, что они все выполнены.

Вы можете использовать такой инструмент, как Dependency Viewer, чтобы проверить зависимости, но на самом деле лучший способ сделать это — перейти к источнику. Либо документацию библиотеки, если это сторонняя библиотека, либо напрямую из исходного кода и параметров компиляции, если вы сами создали DLL.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]