如题,刚装的UE5.1.1发布版,创建C++工程失败并报错如下:

Running C:/Program Files/Epic Games/UE_5.1/Engine/Build/BatchFiles/Build.bat -projectfiles -project="d:/Documents/Unreal Projects/tests/tests.uproject" -game -rocket -progress
Running UnrealBuildTool: dotnet "..\..\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.dll" -projectfiles -project="d:/Documents/Unreal Projects/tests/tests.uproject" -game -rocket -progress
'dotnet' ????????ⲿ????Ҳ??????еij??
????ļ? 显示的关键信息也是乱码,此时可以直接复制命令到命令行执行会出现正确的提示:
C:/Program Files/Epic Games/UE_5.1/Engine/Build/BatchFiles/Build.bat -projectfiles -project="d:/Documents/Unreal Projects/tests/tests.uproject" -game -rocket -progress

问题就出在找不到dotnet运行程序,那具体原因是什么呢?为什么会找不到,按理说安装的官方引擎是可以正确运行才对。打开C:\Program Files\Epic Games\UE_5.1\Engine\Build\BatchFiles\Build.bat查看有如下代码行。去获取dotnet的路径。

查看GetDotnetPath.bat可以看到,这里主要是讲引擎安装目录下的Dotnet指定到PATH中。

所以,出现标题错误的原因其实是找不到Unreal需要的Dotnet程序的目录。至于为什么安装之后没有正确的设置环境变量就不得而知了。
既然找到了问题所在,正确的修改方法就是将引擎目录下的dotnet增加到环境变量中。
DOTNET_ROOT=C:\Program Files\Epic Games\UE_5.1\Engine\Binaries\ThirdParty\DotNet\6.0.302\windows
