1

Я купил игру Stardew Valley на steam, установил, запустил. Ничего не случилось :(...
Когда я посмотрел в окне просмотра событий, я увидел следующую информацию:

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

Для меня это звучит как плохая DLL или неправильная архитектура для DLL, но я не смог разобраться в чем проблема. Сразу после этого:

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: 

С последующим:

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: 

Мне нравится решать свои проблемы, но через 6 часов я сдаюсь. Я использовал Dependency Walker, чтобы сообщить мне об отсутствующих dll или несовместимых версиях. Одна из странных вещей заключается в том, что исполняемый файл игры - x86, а все загруженные dll - x64. У моей жены тоже есть игра, и она работает на ее компьютере, однако Dependency Walker не сообщил о каких-либо больших различиях. Она получила только несколько доступных длл (которые я потом скопировал, но не помогло).

Вот что я попробовал (с перезагрузками между ними):

  • Переустановите игру (3 раза)
  • перезагружать
  • Проверка целостности файла Steam
  • Начать вне пара
  • Начать с правами администратора
  • Все режимы совместимости
  • Переустановка XNA 4.0
  • Полностью удалил XNA 4.0 и переустановил
  • SFC / SCANNOW
  • dism / Online / Cleanup-Image / RestoreHealth
  • Установка на игру на диске C вместо диска F
  • Полное удаление всех System32 / d2 * .dll и d3 * .dll и переустановка directx (что сломало несколько других игр)
  • Обновленные графические драйверы
  • dxdiag сообщает о проблемах
  • выключить и снова включить
  • размещение следующих (отсутствующих) dll в каталоге system32 / syswow64 / game
    • (X86) API-МС-WIN-ОСНОВНОЙ-APIQUERY-L1-1-0.DLL
    • (X86) API-МС-WIN-ОСНОВНОЙ-AppCompat-L1-1-1.DLL
    • (X86) API-МС-WIN-Core-ВОЛОКНА-L1-1-1.DLL
    • (X86) API-МС-WIN-Core-ВОЛОКНА-L2-1-1.DLL
    • (X86) API-МС-WIN-ОСНОВНОЙ-ПСМ-APPNOTIFY-L1-1-0.DLL
    • (X86) API-МС-WIN-УСТРОЙСТВ-CONFIG-L1-1-1.DLL
    • (X86) API-МС-WIN-ММ-MISC-L1-1-1.DLL
    • (X86) API-МС-WIN-RTCore-NTUSER-WinEvent-L1-1-0.DLL
    • (X86) API-МС-WIN-СЕКЬЮРИТИ-CryptoAPI-L1-1-0.DLL
    • (X 86) EXT-МС-WIN-RTCore-NTUSER-DPI-L1-1-0.DLL
    • (X86) ieshims.dll
    • (64) API-МС-WIN-BASE-UTIL-L1-1-0.DLL
    • (64) API-МС-WIN-ОСНОВНОЙ-Comm-L1-1-0.DLL

Я декомпилировал exe, чтобы посмотреть на его ссылки, которые:

  • Lidgren.Network
  • Microsoft.Xna.Фреймворк
  • Microsoft.Xna.Фреймворк.Игра
  • Microsoft.Xna.Фреймворк.Графика
  • Microsoft.Xna.Фреймворк.Xact
  • mscorlib
  • PresentationCore
  • Steamworks.NET
  • система
  • Система.ядро
  • Система.ServiceModel
  • Система.Окна.формы
  • Система.Xml
  • xTile

Все эти DLL были успешно решены.
Что еще я могу сделать, чтобы попытаться решить эту проблему? Я переустановлю свою систему через два месяца, что может помочь, но я думаю, что слишком радикально делать это сейчас ради одной программы, которая отказывается запускаться.

РЕДАКТИРОВАТЬ:
Вот аварийный дамп , срок действия которого истекает 27-04-2016.

Я также изучил аварийный дамп и попытался отладить его в Visual Studio 2015. Я получаю следующую ошибку: необработанное исключение типа 'System.BadImageFormatException 'произошло в неизвестном модуле.

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.

Я не понимаю эту ошибку. Я уже дважды переустанавливал его!
Тем не менее, когда я ищу DLL, я нахожу несколько версий, расположенных в следующих местах:

  • C:\Program Files (x86)\Microsoft Silverlight\5.1.41212.0
  • C:\Program Files (x86)\Microsoft SDK \Windows Phone \v8.1 \Tools \MDILXAPCompile \Framework
  • C:\Program Files (x86)\Справочные сборки \Microsoft \Framework \WindowsPhone \v8.1
  • C:\Program Files (x86)\Microsoft SDK \Windows Phone \v8.1 \Tools \AppDeploy \MdilXapCompilev8.0 \Framework
  • C:\Program Files (x86)\Справочные сборки \Microsoft \Framework \Silverlight\v5.0
  • C:\Program Files (x86)\Microsoft XNA \XNA Game Studio \v4.0 \References \Windows \x86
  • C:\Program Files (x86)\Microsoft XNA \XNA Game Studio \v4.0 \References \Xbox360
  • C:\Windows \Microsoft.NET \сборка \GAC_32 \Microsoft.Xna.Framework \v4.0_4.0.0.0__842cf8be1de50553

Когда я смотрю на ссылки с DotPeek, он говорит, что он принимает следующее: C:\Program Files (x86)\Microsoft XNA\XNA Game Studio\v4.0\References\Windows\x86\Microsoft.Xna.Framework.dll (которая существует).

3 ответа3

3

Я наконец исправил это. Вот решение:

У меня был x64 X3dAudio_7.dll в папке sysWow64 и x86 X3dAudio_7.dll в папке system32. Я их переключил, переустановил XNA и все заработало!

Я узнал об этом, открыв Microsoft.Xna.Framework.dll в Dependency Walker. Я заметил, что все упомянутые DLL были x64, кроме этого.

Это может показаться нелогичным, но, если у вас установлена x64 windows, все x64 dll попадают в папку system32, а x86 dll - в папку SysWow64.

1

Я собирался просто добавить комментарий, но пока не могу, и это вряд ли сработает в любом случае, но это стоит того, чтобы его попробовать.

Вы можете удалить игру , прежде чем делать это, но это до вас , на самом деле , как вы , кажется, имеют довольно приличное схватывание на этом материале в любом случае.

С закрытым Steam

1) Пуск> Выполнить>% temp% (очистить весь этот мусор)

2) Очистите временные файлы в C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files и C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files

3) Запустите утилиту восстановления .NET (и, возможно, обновите .NET до последней стабильной версии, которая может быть 4.6.2): https://www.microsoft.com/en-us/download/details.aspx?id=30135

Затем, возможно, перезагрузите компьютер и попробуйте снова, или переустановите игру, если вы удалили ее, прежде чем делать это.

Изменить: и все то, что вы удалили / переустановили, вы установили версии для x64 и x86?

Кроме того, как представляется, некоторые соответствующие обсуждения здесь

0

или вы можете поместить 32-битную версию X3dAudio_7.dll в ту же папку с игрой exe.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .