ゲーム開発チーム「丸ダイス」の開発ブログです! 公式サイトはこちら

【Unity】Unhandled exception. System.BadImageFormatException: Could not load file or assembly ILPostProcessorRunner.exe の直し方

Editorで開発中、突然「実行前にコンパイルエラーを直す必要があります」と言われ、Editor実行ができなくなった。 コンソールログを見ると以下のエラーが赤アイコンでたくさん並んでいた。

Unhandled exception. System.BadImageFormatException: Could not load file or assembly 'C:/Program Files/Unity/Hub/Editor/2021.3.14f1/Editor/Data/Tools/ILPostProcessorRunner/ILPostProcessorRunner.exe'. Format of the executable (.exe) or library (.dll) is invalid.
File name: 'C:/Program Files/Unity/Hub/Editor/2021.3.14f1/Editor/Data/Tools/ILPostProcessorRunner/ILPostProcessorRunner.exe'
   at System.Runtime.Loader.AssemblyLoadContext.LoadFromPath(IntPtr ptrNativeAssemblyLoadContext, String ilPath, String niPath, ObjectHandleOnStack retAssembly)
   at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyPath(String assemblyPath)
   at Program.Main(String[] args)

結論

UnityHubから該当のUnity2021.3.14f1を再インストールすることで直った。

修正までの経緯

・起きる直前の作業は、コードを変更してCtrl+Rでスクリプトをロード

・普通のMonobehaviourコードで、特別なコードは書いていなかった。

・手元の変更がない他のプロジェクトを開いたところ、やはり同じエラーでEditor実行が出来なかった

・PCを再起動したが、治らなかった

・エラー内にあるILPostProcessorRunner.exeのフォルダを見に行ったところ、ファイルサイズが0KBになっており、更新日時がこの時点の1時間ほど前になっていた。

・UnityHubからUnityEditorをアンインストールして、再度インストールした

・無事に正常にEditor実行できるようになった

・再度ILPostProcessorRunner.exeを見たところ、46KBだった。

推測

意図しない何らかのプロセスがILPostProcessorRunner.exeを破損させた(例えばアンチウィルスソフトなど)

直前の作業や手元の変更は関係がないと思われる。