dll не загружается - FileLoadException - PullRequest
0 голосов
/ 14 января 2011

Проблема, с которой я столкнулся, заключается в том, что я получаю исключение System.IO.FileLoadException при попытке загрузить RWLock.dll на тестовом компьютере и на компьютерах с Windows XP.

Это исключение, которое выдается при попытке загрузить dll на компьютер с сервером Windows 2003 (скорее всего, 32-разрядный):

System.IO.FileLoadException: не удалось загрузить процедуру, импортированную из 'rwlock, Version = 1.0.3889.27926, Culture = нейтральный, PublicKeyToken = null'.

Имя файла: 'rwlock, версия = 1.0.3889.27926, культура = нейтральная, PublicKeyToken = null' ---> System.Runtime.InteropServices.COMException (0x8007007F): указанная процедура не найдена. (Исключение из HRESULT: 0x8007007F) ...

Однако у нас не было никаких проблем при попытке запустить это на сервере с Windows 2007 * (64 бит).

Есть идеи? Заранее спасибо:)

* Windows 2008 (упс)

1 Ответ

3 голосов
/ 14 января 2011

Сообщение об ошибке говорит о том, что RWLock.dll пытается импортировать функцию, которая не существует из другой DLL. Это, вероятно, означает, что RWLock пытается импортировать функцию API, существующую на компьютере Windows 2008 Server (я полагаю, вы имели в виду вместо «Windows 2007 Server»), но не в Windows 2003 или более ранней версии.

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

Другая возможность состоит в том, что RWLock зависит от другой предоставляемой им библиотеки DLL, но вы не распределяете ее должным образом. Зависимость Уокер может помочь с этим тоже.

...