System.DLLNotFoundException, когда DLL существует - PullRequest
4 голосов
/ 02 мая 2011

Я получаю следующую ошибку, когда мы загружаем DLL в нашу программу, которая выдает следующую ошибку:

Unable to load DLL 'xxx.dll': The specified procedure could not be found. (Exception from HRESULT: 0x8007007F)

Это не имеет смысла для меня, потому что DLL существует и встроена в наш установщик каждый раз, когда мы вносим изменения в наш код. Эта DLL не изменилась за несколько месяцев, и это только начало происходить около недели назад из наших недавно установленных копий. Есть идеи? Данный проект является неуправляемым проектом C ++, который вызывается из приложения .NET 3.5.

Ответы [ 2 ]

4 голосов
/ 02 мая 2011

Возможно, одна из зависимостей xxx.dll не найдена. Вы можете проверить его зависимости, используя DUMPBIN /dependents xxx.dll, и получить дополнительную информацию, используя Dependency Walker , чтобы увидеть, какие из них могут отсутствовать или не обнаруживаться в тестируемой системе.

3 голосов
/ 02 мая 2011

Ошибка не говорит о том, что DLL не существует; он говорит, что в DLL отсутствует вызов процедуры, которую вы пытаетесь сделать. Скорее всего, это означает, что в пути поиска есть еще одна DLL с таким же именем файла, это более старая версия.

Вы устанавливаете DLL в ту же папку, что и вызывающее приложение?

...