kyuskoj 发表于 2022-8-17 09:21

虚幻引擎新建C++工程UnrealBuildTool报错找不 …

今天突然心血来潮,想把虚幻给捡起来。结果刚想创建一个C++项目,UnrealBuildTool.exe就报错说什么DotNetCore3.1运行时Net Found。原来是UE5把UnrealBuildTool的.Net版本从.Net Framework迁移到了.Net Core 3.1,而我电脑上正好没装这个版本(.NET 6正式发布之后我就把之前的全部卸载了)。
这本来倒也不是什么问题,缺什么东西装上就是了,查了一圈网上大多数文章也都是这么说的。但作为一个SDK洁癖,我怎么会容忍一个我大概率永远也用不到的且已经过时的SDK装在我的电脑上呢?更何况由于平时开发需要,我的电脑上是装了.NET 6的,于是很自然地 我第一个想到的便是利用EPIC提供的源码,在.NET 6上重新编译一遍UnrealBuildTool。
打开虚引擎的安装目录,在Engine/Source/Programs/UnrealBuildTool目录下,我们用Rider(VS也行)打开UnrealBuildTool.sln。


然后修改所有的项目文件(.csproj)的TargetFramework键为以下值:
<TargetFramework>net6.0</TargetFramework>我这里使用的是目前(截至发稿:2022.6)最新的LTS版本.NET 6,如果未来微软发布了.NET 8或者其他LTS版本,这里就需要填写对应的版本。当然你在VS或者Rider的图形界面里改也是可以的。保存,然后在Release模式下重新生成解决方案即可。

生成成功后就可以看到,在引擎安装目录/Engine/Binaries/DotNET/UnrealBuildTool下,的UnrealBuildTool的最新更新日期已经改变,就说明原本的UnrealBuildTool已经被更新为了我们自己编译的版本。


现在,再去虚幻引擎编辑器里创建C++项目,就不会报错 “DotNetCore3.1 Not Found” 了。
不过呢,如果是生产环境的话,除非有充足的理由,否则建议还是不推荐这么干。我的话现在再不任性,等以后工作了恐怕就没机会了。用什么语言、技术栈、框架都不是你能决定的。就算是以后做到了项目经理,甚至是架构的位置上,技术选型也不是任凭自己喜好就能胡来的,相反,位置越高,要考虑的东西就越多,就越不可能凭自己的好恶来选择。
转载自(虽然也是我自己,不过为了防止被版权机器人误判):
页: [1]
查看完整版本: 虚幻引擎新建C++工程UnrealBuildTool报错找不 …