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を破損させた(例えばアンチウィルスソフトなど)
直前の作業や手元の変更は関係がないと思われる。