Làm cách nào để sửa lỗi BadImageFormatException khi khởi động ứng dụng?


1

Tôi đã mua trò chơi Stardew Valley trên steam, cài đặt nó, ra mắt nó. Không có gì xảy ra: (...
Khi tôi nhìn vào sự kiện, tôi thấy các thông tin sau:

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[])

Đối với tôi điều này nghe có vẻ như là một dll xấu hoặc một kiến ​​trúc sai cho một dll, nhưng tôi đã không thể tìm ra vấn đề là gì. Ngay sau đó:

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: 

Theo dõi bởi:

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: 

Tôi thích tự khắc phục vấn đề của mình, nhưng sau 6 giờ tôi bỏ cuộc. Tôi đã sử dụng Dependency Walker để thông báo cho tôi về các phiên bản thiếu dll hoặc không tương thích. Một trong những điều kỳ lạ là exe của trò chơi là x86 và tất cả các dll được tải là x64. Vợ tôi cũng có trò chơi và nó hoạt động trên máy của cô ấy, tuy nhiên Dependency Walker báo cáo không có sự khác biệt lớn. Cô ấy chỉ có sẵn một vài dll (mà tôi đã sao chép sau đó, nhưng không giúp được gì).

Đây là những gì tôi đã thử (với khởi động lại ở giữa):

  • Cài đặt lại trò chơi (3 lần)
  • Khởi động lại
  • Kiểm tra tính toàn vẹn của tập tin hơi
  • Bắt đầu hơi nước bên ngoài
  • Bắt đầu với tư cách quản trị viên
  • Tất cả các chế độ tương thích
  • Cài đặt lại XNA 4.0
  • Đã xóa hoàn toàn XNA 4.0 và cài đặt lại
  • sfc / scannow
  • tháo / Trực tuyến / Dọn dẹp hình ảnh / Khôi phục sức khỏe
  • Cài đặt trên game trên ổ C thay vì ổ F
  • Loại bỏ hoàn toàn tất cả System32 / d2 * đậm và d3 * đậm và cài đặt lại directx (Đã phá vỡ một vài trò chơi khác)
  • Trình điều khiển đồ họa được cập nhật
  • dxdiag báo cáo không có vấn đề
  • tắt và bật lại
  • đặt các dll (thiếu) sau vào thư mục 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-FIBERS-L1-1-1.DLL
    • (x86) API-MS-WIN-CORE-FIBERS-L2-1-1.DLL
    • (x86) API-MS-WIN-CORE-PSM-APPNOTIFY-L1-1-0.DLL
    • (x86) API-MS-WIN-THIẾT BỊ-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-BẢO MẬT-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

Tôi đã dịch ngược exe để xem các tài liệu tham khảo của nó, đó là:

  • Nắp. Mạng
  • Microsoft.Xna. Làm việc
  • Microsoft.Xna.Framework.Game
  • Microsoft.Xna.Framework.Graphics
  • Microsoft.Xna.Framework.Xact
  • mscorlib
  • Trình bày
  • Steamworks.NET
  • Hệ thống
  • Hệ thống
  • System.ServiceModel
  • System.Windows.Forms
  • Hệ thống.Xml
  • xTile

Tất cả những điều này đã được giải quyết thành công.
Tôi có thể làm gì hơn nữa để cố gắng khắc phục vấn đề này? Tôi sẽ cài đặt lại hệ thống của mình sau hai tháng nữa, điều này có thể giúp ích, nhưng tôi nghĩ rằng nó quá triệt để để làm điều đó ngay bây giờ vì lợi ích của 1 chương trình từ chối khởi chạy.

EDIT:
Đây là một bãi chứa sự cố sẽ hết hạn vào ngày 27-04-2016.

Tôi cũng đã xem xét kết xuất sự cố và cố gắng gỡ lỗi với Visual Studio 2015. Tôi gặp phải lỗi sau: Một ngoại lệ chưa được xử lý của loại 'System.BadImageFormatException' xảy ra trong Mô-đun không xác định.

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.

Tôi không hiểu lỗi này. Tôi đã cài đặt lại hai lần!
Tuy nhiên, khi tôi tìm kiếm dll, tôi tìm thấy nhiều phiên bản nằm ở các vị trí sau:

  • C: \ Tệp chương trình (x86) \ Microsoft Silverlight \ 5.1.41212.0
  • C: \ Tệp chương trình (x86) \ Microsoft SDKs \ Windows Phone \ v8.1 \ Tools \ MDILXAPCompile \ Framework
  • C: \ Tệp chương trình (x86) \ Tập hợp tham chiếu \ Microsoft \ Framework \ WindowsPhone \ v8.1
  • C: \ Tệp chương trình (x86) \ Microsoft SDKs \ Windows Phone \ v8.1 \ Tools \ AppDeploy \ MdilXapCompilev8.0 \ Framework
  • C: \ Tệp chương trình (x86) \ Tập hợp tham chiếu \ Microsoft \ Framework \ Silverlight \ v5.0
  • C: \ Tệp chương trình (x86) \ Microsoft XNA \ XNA Game Studio \ v4.0 \ Tài liệu tham khảo \ Windows \ x86
  • C: \ Tệp chương trình (x86) \ Microsoft XNA \ XNA Game Studio \ v4.0 \ Tài liệu tham khảo \ Xbox360
  • C: \ Windows \ Microsoft.NET \ assembly \ GAC_32 \ Microsoft.Xna.Framework \ v4.0_4.0.0.0__842cf8be1de50553

Khi tôi xem các tài liệu tham khảo với DotPeek, nó nói rằng nó có cái này: C: \ Program Files (x86) \ Microsoft XNA \ XNA Game Studio \ v4.0 \ Referenceences \ Windows \ x86 \ Microsoft.Xna.Framework.dll (mà tồn tại).


chụp một bãi chứa sự cố và chia sẻ dmp đã nén (dưới dạng 7z / RAR): msdn.microsoft.com/en-us/l
Library / bb787181% 28VS85% 29.aspx

@ magicandre1981 Tôi đã thêm một bãi chứa sự cố
Mixxiphoid

Câu trả lời:


3

Cuối cùng tôi đã sửa nó. Đây là giải pháp:

Tôi đã có x64 X3dAudio_7.dlltrong thư mục sysWow64 và x86 X3dAudio_7.dlltrong thư mục system32. Tôi đã chuyển đổi chúng, cài đặt lại XNA và mọi thứ đã hoạt động!

Tôi đã tìm thấy điều này bằng cách mở Microsoft.Xna.Framework.dll trong Dependency Walker. Tôi nhận thấy rằng tất cả các DLL được giới thiệu là x64 ngoại trừ cái này.

Điều này có vẻ không hợp lý nhưng, nếu bạn có cài đặt windows x64, tất cả x64 dll sẽ vào thư mục system32 và x86 dll vào thư mục SysWow64.


ok, dmp chỉ hiển thị Không thể tải tệp hoặc tập hợp 'Microsoft.Xna.Framework.dll' hoặc một trong các phụ thuộc của nó. không phải là một ứng dụng Win32 hợp lệ, vì vậy tôi cũng đã đề nghị sử dụng tùy thuộc vào DLL để xem điều gì xảy ra
magicandre1981

@ magicandre1981 và tôi đã làm vậy :), cảm ơn rất nhiều!
Mixxiphoid

1

Tôi sẽ chỉ thêm một nhận xét nhưng chưa thể, và điều này dường như không hoạt động, nhưng nó đáng để thử vì có lẽ bạn chưa thử.

Bạn có thể muốn gỡ cài đặt trò chơi trước khi thực hiện việc này, nhưng thực sự tùy thuộc vào bạn vì bạn dường như có một nắm bắt khá tốt về công cụ này.

Đóng cửa hơi

1) Bắt đầu> Chạy>% temp% (xóa tất cả rác đó)

2) Xóa các tệp tạm thời trong C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET FilesC:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files

3) Chạy tiện ích sửa chữa .NET (và có thể cập nhật .NET lên phiên bản ổn định mới nhất có thể là 4.6.2): https://www.microsoft.com/en-us/doad/details.aspx?id=30135

Sau đó, có thể khởi động lại và thử lại hoặc cài đặt lại trò chơi nếu bạn gỡ bỏ nó trước khi thực hiện công cụ đó.

Chỉnh sửa: và tất cả những thứ bạn đã gỡ cài đặt / cài đặt lại, bạn đã cài đặt cả hai phiên bản x64 và x86 chưa?

Cũng có vẻ là một số cuộc thảo luận có liên quan ở đây


Tôi đã thử tất cả mọi thứ tại liên kết đến diễn đàn steam, nhưng cảm ơn mọi cách :). Tôi sẽ thử đề nghị của bạn về điều sửa chữa .NET.
Mixxiphoid

0

hoặc bạn có thể đặt phiên bản 32 bit của X3dAudio_7.dll vào cùng thư mục của exe trò chơi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.