Wie behebt man BadImageFormatException beim Start der Anwendung?
3051
Mixxiphoid
Ich habe das Spiel Stardew Valley auf Dampf gekauft, installiert und gestartet. Es ist nichts passiert: (... Als ich im eventviewer nachschaute, sah ich folgende Informationen:
Application: Stardew Valley.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.BadImageFormatException at StardewValley.Program.Main(System.String[])
Für mich klingt das nach einer schlechten DLL oder einer falschen Architektur für eine DLL, aber ich konnte nicht herausfinden, was das Problem ist. Gleich danach:
Fault bucket 108078241334, type 1 Event Name: APPCRASH Response: Not available Cab Id: 0 Problem signature: P1: Stardew Valley.exe P2: 1.0.5940.30711 P3: 5705b1ef P4: KERNELBASE.dll P5: 10.0.10586.162 P6: 56cd55ab P7: e0434352 P8: 000bdad8 P9: P10:
Ich löse gerne meine eigenen Probleme, aber nach 6 Stunden gebe ich auf. Ich habe Dependency Walker verwendet, um mich über fehlende oder inkompatible Versionen von DLLs zu informieren. Eines der seltsamen Dinge ist, dass das Spiel exe x86 ist und alle geladenen DLLs x64 sind. Meine Frau hat auch das Spiel und es funktioniert auf ihrer Maschine, jedoch meldete Dependency Walker keine großen Unterschiede. Sie hat nur noch ein paar weitere DLLs zur Verfügung (die ich später kopiert habe, aber nicht geholfen habe).
Folgendes habe ich versucht (mit Neustarts dazwischen):
Spiel neu installieren (3 Mal)
Starten Sie neu
Steam-Datei Integritätsprüfung
Beginnen Sie mit Dampf
Starten Sie als Administrator
Alle Kompatibilitätsmodi
Neuinstallation von XNA 4.0
XNA 4.0 wurde vollständig entfernt und erneut installiert
sfc / scannow
dism / Online / Bereinigungsbild / RestoreHealth
Installation im Spiel auf Laufwerk C anstelle von Laufwerk F
Vollständige Entfernung aller System32 / d2 * .dll- und d3 * .dll-Dateien und Neuinstallation von directx (was ein paar andere Spiele brach)
Grafiktreiber aktualisiert
dxdiag meldet keine Probleme
Herunterfahren und wieder einschalten
Platzieren der folgenden (fehlenden) DLLs im Verzeichnis system32 / syswow64 / game
Ich dekompilierte das Exe, um seine Referenzen zu betrachten.
Lidgren.Network
Microsoft.Xna.Framework
Microsoft.Xna.Framework.Game
Microsoft.Xna.Framework.Graphics
Microsoft.Xna.Framework.Xact
Mscorlib
PresentationCore
Steamworks.NET
System
System.Core
System.ServiceModel
System.Windows.Forms
System.Xml
xTile
Alle diese DLLs wurden erfolgreich gelöst. Was kann ich noch tun, um dieses Problem zu beheben? Ich werde mein System in zwei Monaten neu installieren, was vielleicht hilfreich ist, aber ich denke, es ist zu radikal, um es jetzt zu tun, um ein Programm zu starten, das den Start verweigert.
Ich habe mir auch den Absturzspeicherauszug angesehen und versucht, ihn mit Visual Studio 2015 zu debuggen. Ich erhalte die folgende Fehlermeldung: Eine nicht behandelte Ausnahme des Typs 'System.BadImageFormatException' ist in Unknown Module aufgetreten.
Additional information: Could not load file or assembly 'Microsoft.Xna.Framework.dll' or one of its dependencies. is not a valid Win32 application. (Exception from HRESULT: 0x800700C1) If there is a handler for this exception, the program may be safely continued.
Ich verstehe diesen Fehler nicht. Ich habe es schon zweimal neu installiert! Wenn ich jedoch nach der DLL suche, finde ich mehrere Versionen an den folgenden Stellen:
C: \ Programme (x86) \ Microsoft Silverlight \ 5.1.41212.0
C: \ Programme (x86) \ Microsoft SDKs \ Windows Phone \ v8.1 \ Tools \ MDILXAPCompile \ Framework
Wenn ich mir die Verweise mit DotPeek anschaue, heißt es, es braucht folgendes: C: \ Programme (x86) \ Microsoft XNA \ XNA Game Studio \ v4.0 \ References \ Windows \ x86 \ Microsoft.Xna.Framework.dll (welches existiert).
Erfassen Sie ein Absturzabbild, und geben Sie das komprimierte dmp (als 7z / RAR) frei: http://msdn.microsoft.com/en-us/library/bb787181%28VS.85%29.aspx
magicandre1981 vor 8 Jahren
0
@ magicandre1981 Ich habe einen Crash Dump hinzugefügt
Mixxiphoid vor 8 Jahren
0
3 Antworten auf die Frage
3
Mixxiphoid
Ich habe es endlich behoben. Hier ist die Lösung:
Ich hatte die x64 X3dAudio_7.dllim Ordner sysWow64 und die x86 X3dAudio_7.dllim Ordner system32. Ich habe sie gewechselt, XNA neu installiert und alles hat funktioniert!
Ich fand dies heraus, indem ich Microsoft.Xna.Framework.dll in Dependency Walker öffnete. Ich habe bemerkt, dass alle referenzierten DLLs x64 waren, außer diesem.
Es mag nicht logisch erscheinen, aber wenn Sie eine x64-Installation von Windows haben, gehen alle x64-DLLs in den system32-Ordner und die x86-dlls in den SysWow64-Ordner.
ok, das dmp zeigt nur ** Die Datei oder die Assembly 'Microsoft.Xna.Framework.dll' oder eine ihrer Abhängigkeiten konnte nicht geladen werden. ist keine gültige Win32-Anwendung **, daher würde ich auch vorschlagen, die DLL zu verwenden, um zu sehen, was passiert
magicandre1981 vor 8 Jahren
0
@ magicandre1981 und das habe ich getan :), vielen Dank!
Mixxiphoid vor 8 Jahren
0
1
pay
Ich wollte einfach nur einen Kommentar hinzufügen, kann es aber noch nicht, und es ist unwahrscheinlich, dass es trotzdem funktioniert, aber es ist einen Versuch wert, da Sie es wahrscheinlich nicht versucht haben.
Möglicherweise möchten Sie das Spiel deinstallieren, bevor Sie dies tun, aber es liegt an Ihnen, da Sie sowieso ein recht anständiges Verständnis haben.
2) Löschen Sie die temporären Dateien in C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Filesund C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files
Starten Sie dann möglicherweise einen Neustart, und versuchen Sie es erneut, oder installieren Sie das Spiel erneut, wenn Sie es zuvor entfernt haben.
Bearbeiten: und all das, was Sie deinstalliert / neu installiert haben, haben Sie sowohl die x64- als auch die x86-Version installiert?
Auch scheint es einige relevante Diskussionen hier zu geben
Ich habe schon alles über den Link zum Steam-Forum ausprobiert, aber trotzdem danke :). Ich werde Ihren Vorschlag zur .NET-Reparatursache ausprobieren.
Mixxiphoid vor 8 Jahren
0
0
pitsch
oder Sie können die 32-Bit-Version von X3dAudio_7.dll im selben Ordner des Spielexe ablegen.