Unity开发遇Win32Exception报错求助:找不到指定文件
unity_csc.bat 错误修复方案 错误详情
Win32Exception: ApplicationName='E:\Unity Edtor\2020.3.37f1\Editor\Data\Tools\RoslynScripts\unity_csc.bat', CommandLine='/noconfig @Temp/UnityTempFile-54dc7559203bbb3499c8dea19348dd7e', CurrentDirectory='', Native error= The system cannot find the file specified.
System.Diagnostics.Process.StartWithCreateProcess (System.Diagnostics.ProcessStartInfo startInfo) (at <39d8670c8f6e487fb992d3c14d754584>:0)
System.Diagnostics.Process.Start () (at <39d8670c8f6e487fb992d3c14d754584>:0)
(wrapper remoting-invoke-with-check) System.Diagnostics.Process.Start()
UnityEditor.Utils.Program.Start (System.EventHandler exitCallback) (at :0)
UnityEditor.Utils.Program.Start () (at :0)
UnityEditor.Scripting.Compilers.MicrosoftCSharpCompiler.BeginCompiling () (at :0)
UnityEditor.Scripting.ScriptCompilation.CompilationTask.QueuePendingAssemblies () (at :0)
UnityEditor.Scripting.ScriptCompilation.CompilationTask.Poll () (at :0)
UnityEditor.Scripting.ScriptCompilation.EditorCompilation.CompileScriptAssemblies (UnityEditor.Scripting.ScriptCompilation.ScriptAssembly[] scriptAssemblies, UnityEditor.Scripting.ScriptCompilation.ScriptAssemblySettings scriptAssemblySettings, System.String tempBuildDirectory, UnityEditor.Scripting.ScriptCompilation.CompilationTaskOptions compilationTaskOptions, UnityEditor.Scripting.ScriptCompilation.EditorCompilation+CompileScriptAssembliesOptions compileScriptAssembliesOptions) (at :0)
UnityEditor.Scripting.ScriptCompilation.EditorCompilation.CompileScriptsWithSettings (UnityEditor.Scripting.ScriptCompilation.ScriptAssemblySettings scriptAssemblySettings, System.String tempBuildDirectory, UnityEditor.Scripting.ScriptCompilation.TargetAssembly[]& notCompiledTargetAssemblies, System.String[]& notCompiledScripts, UnityEditor.Scripting.ScriptCompilation.CompilationTaskOptions compilationTaskOptions) (at :0)
UnityEditor.Scripting.ScriptCompilation.EditorCompilation.CompileScripts (UnityEditor.Scripting.ScriptCompilation.EditorScriptCompilationOptions editorScriptCompilationOptions, UnityEditor.BuildTargetGroup platformGroup, UnityEditor.BuildTarget platform, System.String[] extraScriptingDefines, UnityEditor.Scripting.ScriptCompilation.CompilationTaskOptions compilationTaskOptions) (at :0)
UnityEditor.Scripting.ScriptCompilation.EditorCompilation.TickCompilationPipeline (UnityEditor.Scripting.ScriptCompilation.EditorScriptCompilationOptions options, UnityEditor.BuildTargetGroup platformGroup, UnityEditor.BuildTarget platform, System.String[] extraScriptingDefines) (at :0)
UnityEditor.Scripting.ScriptCompilation.EditorCompilationInterface.TickCompilationPipeline (UnityEditor.Scripting.ScriptCompilation.EditorScriptCompilationOptions options, UnityEditor.BuildTargetGroup platformGroup, UnityEditor.BuildTarget platform, System.String[] extraScriptingDefines) (at :0)
UnityEditor.Scripting.ScriptCompilation.EditorCompilationInterface:TickCompilationPipeline(EditorScriptCompilationOptions, BuildTargetGroup, BuildTarget, String[])
修复方案
修正路径拼写错误
错误提示中的路径为E:\Unity Edtor\2020.3.37f1,这里Edtor是拼写错误,正确应为Editor。如果你的Unity安装目录确实存在这个拼写问题,手动修改目录名称,或在Unity Hub中重新指定正确的安装路径。检查并补充缺失文件
导航到E:\Unity Editor\2020.3.37f1\Editor\Data\Tools\RoslynScripts目录,确认unity_csc.bat是否存在:- 若文件缺失,打开Unity Hub找到对应2020.3.37f1版本
- 点击版本右侧三点图标,选择「添加模块」
- 勾选
.NET Framework相关组件,重新安装以补充缺失文件
清理项目缓存与临时文件
- 关闭Unity编辑器
- 删除项目根目录下的
Temp、Library、obj文件夹 - 重新打开Unity,等待项目重新导入编译
切换脚本编译器
- 打开Unity,进入
Edit > Preferences > External Tools - 将
Scripting Runtime Version设置为.NET 4.x Equivalent - 在
C# Compiler下拉菜单中选择Mono编译器替代Roslyn,重启Unity后测试
- 打开Unity,进入
重新安装Unity
若以上方法均无效,在Unity Hub中卸载当前2020.3.37f1版本,重新下载安装,确保安装过程无中断、文件无损坏。
内容的提问来源于stack exchange,提问作者HasaanAhmad

