DllImport System generiert.DllNotFoundException

Ich habe einige Schwierigkeiten beim Versuch zu konsumieren, ein unmanaged-code dll aus meiner Anwendung (geschrieben in C# framework 4.0).
Ich bin mit der dll import wie folgt

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

Komisch ist, dass beim Aufruf von meine Entwicklungsumgebung (Windows XP) funktioniert es Prima, aber wenn Sie auf den Produktions-server (Windows7), erzeugt es die folgende Ausnahme:

System.DllNotFoundException: Unable to load DLL ' C:\MGW_SDK.dll': Das angegebene Modul konnte nicht gefunden werden. (Ausnahme von HRESULT: 0x8007007E) bei Comtpaq.AdminPack.SDKWrapper.fInicializaSDK() bei Comtpaq.AdminPack.AdminPaqRepository.InitializeSDK() im C:\Work\AgroIn\AdminPaqRepository.cs:Linie 30

Ich schon lief Dependency Walker, das zeigt die folgende Abhängigkeit als Konflikt: C:\windows\system32\SHLWAPI.DLL

Ich schon versucht, das kopieren, die dll zu meinem deployment-Verzeichnis

Den MGW_SDK.dll ist auf c:\ (als Pfad sagt)

Habe ich bereits installiert C-Runtime-Bibliothek

Habe ich auch bemerkt, einige interessante Dinge: auf die Ausnahme, die Entwicklung Weg zeigt C:\Work\AgroIn\AdminPaqRepository.cs:line 30

Was könnte hier das problem?

Bearbeiten

Baute ich eine kleine Konsole-Anwendung mit nur einer der extern/dllimport Methoden, die ich benutze, von MGW_SDK.dll und es lief ohne Probleme (keine DllNotFoundException auch immer), so scheint dies im Zusammenhang mit der Anwendung, die ich Baue (WCF Service). Dieser service wird gehostet WURDE, aber ich bin immer noch nicht finden das Problem.

sowohl die Produktion als auch für Entwickler Betriebssysteme sind 32-bit? .NET aaplication ist zusammengestellt für die Zielplattform AnyCPU?
ja, beide Betriebssysteme 32-bit-und Sie sind zusammengestellt als AnyCPU, die Anwendung selbst funktioniert, ist gerade diese Komponente, die mich Schmerzen.
Welche app ist es? Desktop, ASP .NET?
Das ist eigentlich ein WCF-Dienst
Haben Sie versucht,, um alle erforderlichen Dll-Dateien in Ihrem app-Ordner? Nur um sicherzustellen, dass es diese finden kann.

InformationsquelleAutor Bongo Sharp | 2010-09-29

Schreibe einen Kommentar