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:

Faulting application name: Stardew Valley.exe, version: 1.0.5940.30711, time stamp: 0x5705b1ef Faulting module name: KERNELBASE.dll, version: 10.0.10586.162, time stamp: 0x56cd55ab Exception code: 0xe0434352 Fault offset: 0x000bdad8 Faulting process id: 0x23d8 Faulting application start time: 0x01d19eee1ec0b80d Faulting application path: F:\Steam\steamapps\common\Stardew Valley\Stardew Valley.exe Faulting module path: C:\WINDOWS\SYSTEM32\KERNELBASE.dll Report Id: b8cdbcca-597d-4eb4-a44c-47f2b8c510a5 Faulting package full name:  Faulting package-relative application ID:  

Gefolgt von:

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
    • (x86) API-MS-WIN-CORE-APIQUERY-L1-1-0.DLL
    • (x86) API-MS-WIN-CORE-APPCOMPAT-L1-1-1.DLL
    • (x86) API-MS-WIN-CORE-FIBRES-L1-1-1.DLL
    • (x86) API-MS-WIN-CORE-FIBRES-L2-1-1.DLL
    • (x86) API-MS-WIN-CORE-PSM-APPNOTIFY-L1-1-0.DLL
    • (x86) API-MS-WIN-DEVICES-CONFIG-L1-1-1.DLL
    • (x86) API-MS-WIN-MM-MISC-L1-1-1.DLL
    • (x86) API-MS-WIN-RTCORE-NTUSER-WINEVENT-L1-1-0.DLL
    • (x86) API-MS-WIN-SECURITY-CRYPTOAPI-L1-1-0.DLL
    • (x86) EXT-MS-WIN-RTCORE-NTUSER-DPI-L1-1-0.DLL
    • (x86) IESHIMS.DLL
    • (x64) API-MS-WIN-BASE-UTIL-L1-1-0.DLL
    • (x64) API-MS-WIN-CORE-COMM-L1-1-0.DLL

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.

BEARBEITEN:
Hier ist ein Crash-Dump, der am 27-04-2016 abläuft.

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
  • C: \ Programme (x86) \ Referenzassemblies \ Microsoft \ Framework \ WindowsPhone \ v8.1
  • C: \ Programme (x86) \ Microsoft SDKs \ Windows Phone \ v8.1 \ Tools \ AppDeploy \ MdilXapCompilev8.0 \ Framework
  • C: \ Programme (x86) \ Referenzassemblies \ Microsoft \ Framework \ Silverlight \ v5.0
  • C: \ Programme (x86) \ Microsoft XNA \ XNA Game Studio \ v4.0 \ Referenzen \ Windows \ x86
  • C: \ Programme (x86) \ Microsoft XNA \ XNA Game Studio \ v4.0 \ Referenzen \ Xbox360
  • C: \ Windows \ Microsoft.NET \ assembly \ GAC_32 \ Microsoft.Xna.Framework \ v4.0_4.0.0.0__842cf8be1de50553

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).

1
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.

Mit Dampf geschlossen

1) Start> Ausführen>% temp% (Alle Junk-Dateien löschen)

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

3) Führen Sie das .NET-Reparaturdienstprogramm aus (und aktualisieren Sie möglicherweise .NET auf die neueste stabile Version, möglicherweise 4.6.2): https://www.microsoft.com/de-de/download/details.aspx?id=30135

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.