Comprei o jogo Stardew Valley a vapor, instalei-o, lancei-o. Nada aconteceu: (...
Quando dei uma olhada no visualizador de eventos, vi as seguintes informações:
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[])
Para mim, isso soa como uma dll ruim ou uma arquitetura incorreta para uma dll, mas não consegui identificar qual é o problema.
Logo depois disso:
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:
Seguido por:
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:
Eu gosto de consertar meus próprios problemas, mas depois de 6 horas desisto. Eu usei Dependency Walker para me informar sobre a falta de dll ou versões incompatíveis. Uma das coisas estranhas é que o exe jogo é x86 e todos os dll carregados são x64. Minha esposa também tem o jogo e funciona em sua máquina, no entanto Dependency Walker não relatou grandes diferenças. Ela só tem mais algumas dll disponíveis (que eu copiei depois, mas não ajudou).
Aqui está o que eu tentei (com reinicializações no meio):
- Reinstale o jogo (3 vezes)
- Reiniciar
- Verificação de integridade do arquivo do Steam
- Começar a usar o vapor
- Iniciar como administrador
- todos os modos de compatibilidade
- Reinstalando o XNA 4.0
- Removeu completamente o XNA 4.0 e reinstalou
- sfc / scannow
- dism / Online / Limpeza de imagem / RestoreHealth
- Instalando no jogo na unidade C em vez da unidade F
- Remoção completa de todos os System32 / d2 * .dll e d3 * .dll e reinstalação do directx (que quebrou alguns outros jogos)
- Drivers gráficos atualizados
- o dxdiag não relata problemas
- desligue e ligue novamente
- colocando as seguintes DLLs (ausentes) no diretório 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-FIBRAS-L1-1-1.DLL
- (x86) API-MS-WIN-CORE-FIBRAS-L2-1-1.DLL
- (x86) API-MS-WIN-CORE-PSM-ANOTIFICAÇÃO-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-SEGURANÇA-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
Eu descompilei o exe para ver suas referências, que são:
- Lidgren.Network
- Microsoft.Xna.Framework
- Microsoft.Xna.Framework.Game
- Microsoft.Xna.Framework.Graphics
- Microsoft.Xna.Framework.Xact
- mscorlib
- PresentationCore
- Steamworks.NET
- Sistema
- System.Core
- System.ServiceModel
- System.Windows.Forms
- System.Xml
- xTile
Todas essas DLLs foram resolvidas com sucesso.
O que mais posso fazer para corrigir esse problema? Vou reinstalar meu sistema daqui a dois meses, o que pode ajudar, mas acho que é muito radical fazê-lo agora por causa de um programa que se recusa a lançar.
EDIT: Aqui está um despejo de memória que expira em 27-04-2016.
Também examinei o despejo de memória e tentei depurá-lo com o Visual Studio 2015. Estou recebendo o seguinte erro:
Uma exceção sem tratamento do tipo 'System.BadImageFormatException' ocorreu no Unknown Module.
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.
Eu não entendo esse erro. Já reinstalei duas vezes!
No entanto, quando procuro a dll, encontro várias versões localizadas nos seguintes locais:
- C: \ Arquivos de programas (x86) \ Microsoft Silverlight \ 5.1.41212.0
- C: \ Arquivos de programas (x86) \ Microsoft SDKs \ Windows Phone \ v8.1 \ Ferramentas \ MDILXAPCompile \ Framework
- C: \ Arquivos de Programas (x86) \ Assemblies de Referência \ Microsoft \ Framework \ WindowsPhone \ v8.1
- C: \ Arquivos de programas (x86) \ Microsoft SDKs \ Windows Phone \ v8.1 \ Ferramentas \ AppDeploy \ MdilXapCompilev8.0 \ Framework
- C: \ Arquivos de Programas (x86) \ Assemblies de Referência \ Microsoft \ Framework \ Silverlight \ v5.0
- C: \ Arquivos de programas (x86) \ Microsoft XNA \ XNA Studio \ v4.0 \ References \ Windows \ x86
- C: \ Arquivos de programas (x86) \ Microsoft XNA \ XNA Studio \ v4.0 \ References \ Xbox360
- C: \ Windows \ Microsoft.NET \ assembly \ GAC_32 \ Microsoft.Xna.Framework \ v4.0_4.0.0.0__842cf8be1de50553
Quando eu olho para as referências com DotPeek ele diz que leva um presente: C: \ Arquivos de Programas (x86) \ Microsoft XNA \ XNA Studio Studio \ v4.0 \ References \ Windows \ x86 \ Microsoft.Xna.Framework. dll (que existe).