新系统安装UE5.3 Windows打包报错问题排除

重装系统,安装UE5.3,Windows打包时报错:
SDK Not Setup

网上找到了通过安装Windows SDK解决问题的方法,但尝试无果。突然想起来之前搭建UE环境的时候安装过Visual Studio,安装Visual Studio会带着Windows SDK,并配置Windows开发环境。

UE官网有Visual Studio的安装说明:Setting Up Visual Studio

下载 Visual Studio(community)社区版,按照官方说明进行安装,重新到UE里打包,又遇到了新的错误:

Detected compiler newer than Visual Studio 2022, please update min version checking in WindowsPlatformCompilerSetup.h
10>ConcurrentLinearAllocator.h(31): Error C4668 : 没有将“__has_feature”定义为预处理器宏,用“0”替换“#if/#elif”
10>ConcurrentLinearAllocator.h(31): Error C4067 : 预处理器指令后有意外标记 - 应输入换行符

找到原因,是因为安装Visual Studio 2022(17.12.3)的时候,安装的MSVC版本为最新,最新版本的 ConcurrentLinearAllocator.h 文件中没有 __has_feature 宏定义。

尝试把MSVC的版本降低到14.40,通过Visual Studio安装器的“单个组件”找到MSVC 14.40,勾选。在取消MSVC最新版本的时候,弹窗要删除有依赖关系的组件,其中“Visual Studio Tools for Unreal Engine”是UE编译时必要的组件,直接将MSVC的版本的办法行不通了。

继续找解决办法,又找到了一个遇到相同问题的帖子:
https://forums.unrealengine.com/t/cant-compile-5-4-projects-anymore-i-need-help/2138002

这一楼提到了安装指定版本的Visual Studio,How to install specific version of Visual Studio 2022

找到“VisualStudioSetup.exe”的下载目录,空白处右单击,选择“在终端中打开”,在终端执行如下命令:
.\visualstudiosetup.exe --channelUri https://aka.ms/vs/17/release.LTSC.17.8/channel

安装的Visual Studio版本为17.8.16,在“单个组件”中确定MSVC的版本,只看到是最新版本,不知道确切版本号,不过可以通过上边的版本号推测出最新版本应该为v14.38。

安装完,重新回到UE打包,打包成功。