UE5编译报错:Error MSB3073

本文档详细记录了在UE5开发过程中遇到的关于Unreal Header Tool依赖文件版本不支持的报错,分析了MSVC编译器版本过高导致的问题,提供了回滚到特定版本(如MSVCv142和v143)以解决问题的方法,适合VS2019和VS2022的开发者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

报错信息:

Severity Code Description Project File Line Suppression State

ErrorUnhandled exception: Dependency file “F:\unrealengine-release\Engine\Intermediate\Build\Win64\UnrealHeaderTool\Development\Core\Module.Core.14_of_18.cpp.json” version (“1.2”) is not supported version
UE5 F:\unrealengine-release\Engine\Intermediate\ProjectFiles\UnrealBuildTool 1

Severity Code Description Project File Line Suppression State

Error MSB3073 The command “…\Build\BatchFiles\Build.bat UnrealGame Win64 Development -WaitMutex -FromMsBuild” exited with code 6.
UE5 C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VC\v170\Microsoft.MakeFile.Targets 44

原因:

问题出现在MSVC编译器(14.32.31326:MSVC v143-VS 2022 C++v14.32-17.2)中
Visual Studio 2022 17.3.3 最新版本,版本过高

定位:

/Engine/Source/Programs/UnrealBuildTool/System/CppDependencyCache.cs#L454
if (!String.Equals(Version, “1.1”) && !String.Equals(Version, “1.0”))
{
thrownew BuildException($“Dependency file “{InputFile.Location}” version (”{Version}“) is not supported version”);
}

解决方案:

使用以下版本 MSVC编译器,重新编译即可。
14.29.30133: MSVC v142 - VS 2019 C++ v14.29-16.11
14.30.30705: MSVC v143 - VS 2022 C++ v14.30-17.0
14.31.31103: MSVC v143 - VS 2022 C++ v14.31-17.1

### 关于 Unreal Engine 中 MSB307 错误的解决方案 MSB307 是 Microsoft Build Tools 报告的一个常见错误,通常表示项目配置中的路径或依赖项存在问题。以下是针对该问题可能的原因分析以及解决方法: #### 可能原因 1:引擎版本不一致 如果开发环境使用的 Unreal Engine 版本与项目的实际需求不符,则可能导致构建失败。例如,在某些情况下,开发者可能会手动删除中间文件并重新生成解决方案,但如果所选的引擎版本不同步,就可能出现此类错误[^1]。 - **解决办法**: 确认当前正在使用的 Unreal Engine 版本是否匹配项目设置。可以通过以下方式验证: - 打开 `.uproject` 文件所在的目录。 - 使用 `GenerateProjectFiles.bat` 或者通过右键点击 `.uproject` 文件来重新生成 Visual Studio 解决方案。 - 确保此操作基于正确的 Unreal Engine 安装路径完成。 #### 可能原因 2:Visual Studio 配置不当 MSB307 还可以由 Visual Studio 的工具链未正确初始化引起。这通常是由于缺少必要的组件或者工作负载造成的。 - **解决办法**: 确保已安装适用于 C++ 开发的工作负载,并启用所有必需的功能模块。具体步骤如下: - 启动 Visual Studio Installer。 - 修改现有实例,勾选 “Game development with C++” 和其他相关选项。 此外,尝试清理整个解决方案后再重建: ```bash devenv YourSolution.sln /clean devenv YourSolution.sln /rebuild Release ``` #### 可能原因 3:第三方库链接异常 当项目集成了外部资源(如网络通信框架 RakNet),而这些资源未能被正确定位时也可能触发类似的编译警告/错误消息[^3]。 - **解决办法**: 检查 ThirdParty 库的位置及其引用关系。对于像 RakNet 这样的插件来说,建议采用官方推荐的方式集成它们而不是简单复制粘贴源码;必要时可借助符号连接工具 (junctions) 来简化管理流程。 --- 综上所述,处理 Unreal Engine 下遇到的 MSB307 Error 主要围绕三个方面展开——即保持统一的引擎版本、调整合适的 IDE 设置以及妥善维护附加包之间的关联性。 ```python # 示例脚本用于自动化检测和修复部分常见的构建问题 import os def check_engine_version(project_path, engine_root): uproj_file = os.path.join(project_path, 'YourProject.uproject') if not os.path.exists(uproj_file): raise FileNotFoundError('Missing .uproject file.') expected_engine_dir = get_expected_engine_directory_from_uproject(uproj_file) actual_engine_dir = engine_root return expected_engine_dir == actual_engine_dir def regenerate_solution(): pass # Implement regeneration logic here. if __name__ == "__main__": project_base = r'C:\Path\To\MyUnrealProj' ue_installation = r'D:\Games\EpicGames\UE_4.26' is_correct_setup = check_engine_version(project_base, ue_installation) if not is_correct_setup: print("Mismatch detected between Uproject and installed UE.") regenerate_solution() ``` 问题
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xMathematics

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值