Ich entwickle eine Anwendung (C# winforms), die auf einer Hersteller-DLL, die mit Hardware kommuniziert, beruht.Wie wirkt sich das .NET-Zielframework auf das Laden von DLLs von Drittanbietern aus?
Wenn ich ein Ziel Rahmen von .NET 4 (oder etwas höher) wählen, erhalte ich die folgende Meldung beim Versuch, eine Methode in der referenzierten DLL aufzurufen:
DllNotFoundException: Kann nicht somelibrary‘DLL laden .dll ': Ungültiger Zugriff auf den Speicherort. (Ausnahme von HRESULT: 0x800703E6)
Wenn ich ein Zielframework von .NET 2.0 oder 3.0 auswähle, tritt der Fehler nicht auf.
Ich vermute, dass es eine Inkompatibilität oder dass die Bibliothek älter als .NET 3.0 ist.
Es liegt wahrscheinlich daran, dass die .DLL eine ausführbare Datei startet, die als Kommunikationshandler zwischen der Anwendung und einem seriellen Port fungiert. Ich habe versucht, diese Anwendung einzustellen, um verschiedene Kompatibilitätsmodi zu verwenden und als Administrator ohne Erfolg auszuführen.
Was kann ich tun, um diesen Fehler zu vermeiden und eine modernere .NET-Plattform wie 4.5 oder höher anzusprechen? (Oder bin ich unbedingt wegen der Verwendung einer möglicherweise ziemlich alten DLL stecken?)
Das Ziel der Anwendungsplattform ist x86 und ich bin auf Win7 x64 mit UAC auf Standardeinstellungen entwickeln.
Ist es eine .net-Assembly, die Sie versuchen zu laden? Haben Sie versucht, es mit 'ildasm.exe' zu öffnen? Gibt es zusätzliche Informationen von 'fuslogwv.exe'? – ironstone13
@ ironstone13 Ich werde weiter mit den Tools, die Sie vorgeschlagen haben, untersuchen. Ich bin mir nicht sicher über die Art der Montage. – JYelton