У меня возникают некоторые трудности при попытке использовать неуправляемый код 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
Что еще может проблема здесь?
Я создал небольшое консольное приложение, используя только один из методов extern
/ dllimport
, которые я использую из MGW_SDK.dll
и запустил его без проблем (без DllNotFoundException
вообще), так что похоже, что это связано с приложением, которое я создаю (служба WCF). Эта служба размещена на WAS, но я все еще не могу найти проблему.