Ich habe c ++ dll mit in meinem c # -Projekt, lief es gut auf meinem Windows XP-Maschine, aber wenn ich mein Debug-Projekt auf Fenster 2003 Server (x64) kopieren, erhielt ich Fehler unten, kann mir jemand sagen, was ist das Problem, und wie kann ich es beheben.
Danke
"System.DllNotFoundException: DLL 'lib.dll' konnte nicht geladen werden: Diese Anwendung konnte nicht gestartet werden, da die Anwendungskonfiguration nicht korrekt ist. Die Neuinstallation der Anwendung könnte dieses Problem beheben"
Es beschwert sich, dass es Probleme hat, die CRT-DLLs zu finden. Überprüfen Sie zuerst, dass die DLL das erforderliche Manifest enthält. Wählen Sie in Visual Studio Datei + Öffnen + Datei die DLL aus, und vergewissern Sie sich, dass sie einen RT_MANIFEST-Knoten enthält. Das nächste Problem besteht darin, dass Sie einen Debug-Build Ihrer DLL nicht bereitstellen können. Es wird eine Abhängigkeit von der Debug-Version des CRT haben, die Sie auf dem Zielcomputer nicht installieren können.
Stellen Sie entweder das Release-Build Ihrer DLL bereit oder kompilieren Sie die DLL mit der Option / MT, sodass die CRT statisch verknüpft ist. Projekt + Eigenschaften, C / C ++, Codegenerierung, Laufzeitbibliothek. Dies funktioniert nicht, wenn die DLL mit der Option / clr kompiliert wurde.
Beim Laden von DLL-Problemen rate ich Ihnen, das Dependency Walker -Tool zu verwenden. Es hat sich bei solchen Problemen als wertvoll erwiesen, da es Ihnen das genaue Problem zeigt.
Wenn Sie Visual Studio 2005 besitzen, können Sie es in C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\Bin\depends.exe
finden.
Aktualisierung:
MSVCR90D.DLL
ist die Debug-Version der Visual C ++ - Laufzeit 9.0. Es sollte nur zum Debuggen verwendet werden. Ich empfehle dringend, eine Release-Version Ihrer Bibliothek zu erstellen, um das DLL-Ladeproblem zu vermeiden. Wenn Sie die Debug-Version jedoch unbedingt bereitstellen müssen, finden Sie alle erforderlichen DLLs in C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\Debug_NonRedist\x86
.
klingt so, als hätten Sie die visuelle C ++ - Laufzeit auf dem Zielrechner nicht installiert. Sie können das von hier installieren scheint die Debug-Versionen dieser DLLs zu verwenden, vielleicht musst du deine App auch erst im Release-Modus erstellen? Dieser Beitrag und diese haben einige andere Vorschläge, die helfen könnten .. .
Tags und Links c# dll dllnotfoundexception