Frage Die Datei oder Assembly '*** .dll' oder eine ihrer Abhängigkeiten konnte nicht geladen werden


Ich habe diese DLL, die ich vor langer Zeit erstellt habe und verwende, um mit der db einer bestimmten Software zu verbinden, für die ich entwickle. Ich habe seit über 4 Jahren keine Probleme mehr und unzählige Anwendungen mit dieser DLL.

Beim Versuch, meine neueste Erstellung bereitzustellen, erhalte ich den folgenden Fehler:

System.IO.FileNotFoundException: Could not load file or assembly '***.dll' or one of its dependencies. The specified module could not be found.

Also, für jede DLL, die ich jemals geschrieben habe, habe ich immer eine einfache Formularanwendung gemacht, um diese DLL einfach selbst zu testen. Das Ausführen dieser einfachen App führte zu demselben Fehler. Die DLL lädt oder verwendet nichts anderes als: System, System.Data, System.XML. Soweit es die Abhängigkeiten betrifft, sehe ich nichts falsch.

Übrigens funktioniert alles auf einer Dev-Station. Das Problem ist auf Einsatzstationen beschränkt. .Net und die notwendigen redistributables, da ich alles in C ++ mache, werden bereitgestellt und arbeiten.

Running FUSLOGVW.exe zeigte alles als gut funktioniert.

Das Ausführen von depends.exe lautete: Warnung: Mindestens ein Modul hat einen nicht aufgelösten Import aufgrund einer fehlenden Exportfunktion in einem verzögerungslastabhängigen Modul.

Ich habe bereits versucht, die ganze Sache neu zu schreiben. Was zu den gleichen Ergebnissen führte.

Anhaltspunkte irgendjemand?

EDITS

Hier ist die vollständige Fehlermeldung:

See the end of this message for details on invoking \"
just-in-time (JIT) debugging instead of this dialog box.\"

************** Exception Text **************\"
System.IO.FileNotFoundException: Could not load file or assembly 'connectionTo.dll' or one of its dependencies. The specified module could not be found.\"
File name: 'connectionToJobboss32.dll'\"
   at TESTConnection.Form1.button1_Click(Object sender, EventArgs e)\"
   at System.Windows.Forms.Control.OnClick(EventArgs e)\"
   at System.Windows.Forms.Button.OnClick(EventArgs e)\"
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)\"
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)\"
   at System.Windows.Forms.Control.WndProc(Message& m)\"
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)\"
   at System.Windows.Forms.Button.WndProc(Message& m)\"
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)\"
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)\"
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)\"
\"



************** Loaded Assemblies **************\"
mscorlib\"
    Assembly Version: 4.0.0.0\"
    Win32 Version: 4.0.30319.1 (RTMRel.030319-0100)\"
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll\"
----------------------------------------\"
TESTConnection\"
    Assembly Version: 1.0.3996.18980\"
    Win32 Version: \"
    CodeBase: file:///C:/Program%20Files%20(x86)/conn/TESTConnection.exe\"
----------------------------------------\"
System.Windows.Forms\"
    Assembly Version: 4.0.0.0\"
    Win32 Version: 4.0.30319.1 built by: RTMRel\"
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll\"
----------------------------------------\"
System.Drawing\"
    Assembly Version: 4.0.0.0\"
    Win32 Version: 4.0.30319.1 built by: RTMRel\"
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll\"
----------------------------------------\"
System\"
    Assembly Version: 4.0.0.0\"
    Win32 Version: 4.0.30319.1 built by: RTMRel\"
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll\"
----------------------------------------\"

Es gibt keine Fehler in der Ereignisanzeige.


27
2017-12-10 16:30


Ursprung


Antworten:


oder eine seiner Abhängigkeiten

Das ist das übliche Problem, Sie können eine fehlende nicht verwaltete DLL mit Fuslogvw.exe nicht sehen. Am besten führen Sie das ProcMon-Dienstprogramm von SysInternals aus. Sie werden sehen, dass es nach der DLL sucht und sie nicht findet. Der Profilmodus in Dependency Walker kann dies ebenfalls anzeigen.


32
2017-12-10 18:32



Ich hatte das gleiche Problem mit einer DLL gestern und alles, auf das verwiesen wurde, war System, System.Data und System.Xml. Stellt fest, dass die Build-Konfiguration für den Plattformtyp nicht ausgerichtet wurde. Die DLL wurde für x86 erstellt, und das Programm, das es verwendete, war "Any CPU" und da ich einen x64-Rechner lief, lief das Programm als x64 und hatte Probleme mit der x86-DLL. Ich weiß nicht, ob das dein Problem ist oder nicht, nur gedacht, dass ich es als etwas anderes zu überprüfen erwähnen würde.


18
2017-12-10 16:41



Ich hatte das gleiche Problem. Für mich wurde es durch die Standardeinstellungen auf dem lokalen IIS-Server auf meinem Computer verursacht. Der einfachste Weg, das Problem zu beheben, war, stattdessen den integrierten Visual Studio-Entwicklungsserver zu verwenden :)

Neuere IIS-Versionen auf x64-Computern verfügen über eine Einstellung, die die Ausführung von 32-Bit-Anwendungen standardmäßig nicht zulässt. Um 32-Bit-Anwendungen im lokalen IIS zu aktivieren, wählen Sie den entsprechenden Anwendungspool im IIS-Manager aus, klicken Sie auf "Erweiterte Einstellungen" und ändern Sie "32-Bit-Anwendungen aktivieren" von "Falsch" auf "Wahr"


6
2017-12-07 11:32



Ich bin kürzlich darauf gestoßen. Es stellte sich heraus, dass die alte DLL mit einer früheren Version (Visual Studio 2008) kompiliert wurde und auf diese Version der dynamischen Laufzeitbibliotheken referenzierte. Ich habe versucht, es auf einem System auszuführen, auf dem nur .NET 4.0 installiert war, und ich habe noch nie dynamische Laufzeitbibliotheken installiert. Die Lösung? Ich habe die DLL neu kompiliert, um die statischen Laufzeitbibliotheken zu verknüpfen.

Überprüfen Sie das Anwendungsfehlerprotokoll in der Ereignisanzeige (EVENTVWR.EXE). Es wird Ihnen mehr Informationen über den Fehler geben und Sie wahrscheinlich auf die wahre Ursache des Problems hinweisen.


4
2017-12-10 17:00



Ich habe vor kurzem dieses Problem, die App würde auf den Entwicklermaschinen gut laufen und wählen Sie andere Maschinen, aber nicht auf kürzlich installierten Maschinen. Es stellte sich heraus, dass auf den Rechnern, mit denen es arbeitete, Visual C ++ 11 Runtime installiert war, während die neu installierten Maschinen dies nicht taten. Durch Hinzufügen der Visual C ++ 11 Runtime, die dem App-Installationsprogramm weiterverteilt werden kann, wurde das Problem behoben...


4
2018-02-21 02:33



Diese Antwort steht in keinem Zusammenhang mit der Situation des OP und ist auch für andere sehr unwahrscheinlich, aber nur für den Fall, dass es jemandem helfen könnte ...

In meinem Fall bekam ich "Konnte Datei oder Assembly 'System.Windows.Forms, Version = 4.0.0.0 ... nicht laden", weil ich das Programm mit ILDAsm.exe und ILAsm.exe von .Net Framework / demontiert und neu zusammengesetzt hatte / SDK version 2. Der Wechsel zu ILDAsm.exe und ILAsm.exe aus .Net Framework / SDK Version 4 behob das Problem.

(Seltsamerweise, obwohl das Ausführen von dem, was ich getan habe, wie ein offensichtlicher Fehler erscheint, zeigte die resultierende EXE-Datei, die nicht funktionierte, an, dass sie .NET 4 adressierte, wenn sie mit JetBrains dotPeek untersucht wurde.)


2
2017-10-19 14:38



Ich hatte das gleiche Problem - eine .dll funktioniert die ganze Zeit, dann stürzte mein Computer ab und danach hatte ich dieses Problem von 'konnte Datei oder Assembly nicht laden .... dll'

Zwei mögliche Lösungen: Wenn der Computer abgestürzt ist, kann es inkonsistente Dateien geben

C:\Users\<yourUserName>\AppData\Local\Temp\Temporary ASP.NET Files

Löschen dieses Ordners, Neukompilieren und der Fehler ist weg.

Einmal musste ich auch meinen Paketordner löschen (das hatte ich woanders gelesen). Lassen Sie Visual Studio / nugget fehlende Pakete installieren (oder manuell neu installieren) und danach war alles wieder in Ordnung.


1
2017-08-07 10:29



1) Kopiere DLLs von "Externals \ ffmpeg \ bin" in das Ausgabeverzeichnis deines Projekts (wo die ausführbare Datei bleibt); 2) Stellen Sie sicher, dass Ihr Projekt für x86-Ziel erstellt wurde (läuft im 32-Bit-Modus).

Folge diesem Thread für mehr


0
2018-04-16 09:46