DllImport генерирует System.DllNotFoundException

У меня возникают некоторые трудности при попытке использовать неуправляемый код dll из мое приложение (написанное на C # framework 4.0). Я использую импорт dll следующим образом

[DllImport(@"C:\MGW_SDK.dll", EntryPoint = "fInicializaSDK")]
public static extern int fInicializaSDK();

Странно то, что при вызове из моей среды разработки (Windows XP) он работает нормально, но на рабочем сервере (Windows7) генерирует следующее исключение:

System.DllNotFoundException : невозможно загрузить DLL «C: \ MGW_SDK.dll» : указанный модуль не может быть найден. (Исключение из HRESULT: 0x8007007E) в Comtpaq.AdminPack.SDKWrapper.fInicializaSDK () в Comtpaq.AdminPack.AdminPaqRepository.InitializeSDK118 \ in13948 [11] [initializeSDK] [11] [11] AdminPaqRepository.cs : строка 30

Я уже запускал Dependency Walker , который показывает следующую зависимость как конфликтующую: C: \ windows \ system32 \ SHLWAPI. DLL

Я уже пробовал скопировать эту dll в свой каталог развертывания

MGW_SDK.dll находится на c: \ (как указано в пути)

Я уже установил библиотеку времени выполнения C

Я также заметил кое-что интересное: в исключении путь разработки показывает C: \ Work \ AgroIn \ AdminPaqRepository.cs: строка 30

Что еще может проблема здесь?

Edit

Я создал небольшое консольное приложение, используя только один из методов extern / dllimport , которые я использую из MGW_SDK.dll и запустил его без проблем (без DllNotFoundException вообще), так что похоже, что это связано с приложением, которое я создаю (служба WCF). Эта служба размещена на WAS, но я все еще не могу найти проблему.

5
задан Michael 9 May 2014 в 20:16
поделиться