SteamでStardewValleyというゲームを購入し、インストールして起動しました。何も起こらなかった :(...
イベントビューアを調べたところ、次の情報が表示されました。
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または互換性のないバージョンについて通知しました。奇妙なことの1つは、ゲームのexeファイルがx86であり、ロードされたdllがすべてx64であることです。私の妻もゲームを持っていて、それは彼女のマシンで動作しますが、DependencyWalkerは大きな違いはないと報告しました。彼女はさらにいくつかのdllを利用できるようになりました(後でコピーしましたが、役に立ちませんでした)。
これが私が試したものです(間に再起動します):
私はexeを逆コンパイルして、その参照を調べました。
これらのdllはすべて正常に解決されました。
この問題を解決するためにこれ以上何ができますか?2か月後にシステムを再インストールします。しかし、立ち上げを拒否する1つのプログラムのために、今それを行うのは過激すぎると思います。
編集:
これがクラッシュダンプです これは2016年4月27日に期限切れになります。
また、クラッシュダンプを調べて、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.
私はこのエラーを理解していません。すでに2回再インストールしました!
しかし、dllを検索すると、次の場所に複数のバージョンがあります。
DotPeekで参照を見ると、C:\ Program Files(x86)\ Microsoft XNA\XNA Game Studio\v4.0\References\Windows\x86\Microsoft.Xna.Framework.dll(これ存在します)。
やっと直しました。解決策は次のとおりです。
私はx64を持っていましたX3dAudio_7.dll
sysWow64フォルダーとx86X3dAudio_7.dll
system32フォルダー内。それらを切り替え、XNAを再インストールすると、すべてが機能しました。
Dependency WalkerでMicrosoft.Xna.Framework.dllを開くと、これがわかりました。これを除いて、参照されているすべてのDLLがx64であることに気付きました。
論理的には思えないかもしれませんが、Windowsをx64でインストールしている場合は、すべてのx64 dllがsystem32フォルダーに、x86dllがSysWow64フォルダーに配置されます。
コメントを追加するつもりでしたが、まだできません。とにかくこれが機能する可能性は低いですが、おそらく試したことがないので、一見の価値があります。
あなたかもしれませんこれを行う前にゲームをアンインストールしたいと思うかもしれませんが、とにかくこのことをかなりよく理解しているように見えるので、それは本当にあなた次第です。
スチームを閉じた状態
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の両方のバージョンをインストールしましたか?
また、いくつかの関連する議論があるようです ここ
または、32ビットバージョンのX3dAudio_7.dllをゲームexeの同じフォルダーに配置することもできます。