unreal-engine4 - 虚幻错误:使用 -cook 或 -cookonthefly 需要游戏目标
问题描述
在 Unreal Engine 4.26.2 上,我正在尝试为 Win64 打包 Blueprint/C++ 混合项目。
但是,我遇到了以下错误:
LogMainFrame: Project does not require temp target
LogLauncherProfile: Found promoted target with matching version at ../../../Engine/Binaries/Win64/UE4Game-Win64-Shipping.target
UATHelper: Packaging (Windows (64-bit)): Running AutomationTool...
UATHelper: Packaging (Windows (64-bit)): Parsing command line: -ScriptsForProject="C:/Users/Administrator/Documents/Unreal Projects/foo.uproject" BuildCookRun -nocompileeditor -installed -nop4 -project="C:/Users/Administrator/Documents/Unreal Projects/foo.uproject" -coo
k -stage -archive -archivedirectory=C:/Users/Administrator/Desktop/Win32UnrealBuilds -package -ue4exe="C:\Program Files\Epic Games\UE_4.26\Engine\Binaries\Win64\UE4Editor-Cmd.exe" -ddc=InstalledDerivedDataBackendGraph -pak -prereqs -nodebuginfo -targetplatform=Win64 -clientconfig=Shipping -utf8output
UATHelper: Packaging (Windows (64-bit)): Setting up ProjectParams for C:\Users\Administrator\Documents\Unreal Projects\foo.uproject
UATHelper: Packaging (Windows (64-bit)): ERROR: Game target not found. Game target is required with -cook or -cookonthefly
UATHelper: Packaging (Windows (64-bit)): (see C:\Users\Administrator\AppData\Roaming\Unreal Engine\AutomationTool\Logs\C+Program+Files+Epic+Games+UE_4.26\Log.txt for full exception trace)
PackagingResults: Error: Game target not found. Game target is required with -cook or -cookonthefly
UATHelper: Packaging (Windows (64-bit)): AutomationTool exiting with ExitCode=1 (Error_Unknown)
UATHelper: Packaging (Windows (64-bit)): BUILD FAILED
PackagingResults: Error: Unknown Error
完整异常跟踪的相关部分是:
BuildCookRun.SetupParams: Setting up ProjectParams for C:\Users\Administrator\Documents\Unreal Projects\foo.uproject
InternalUtils.SafeFileExists: SafeFileExists C:\Users\Administrator\AppData\Local\Temp\UAT\C+Program+Files+Epic+Games+UE_4.26\Rules\UATRules24283721.dll=False
DynamicCompilation.RequiresCompilation: Compiling C:\Users\Administrator\AppData\Local\Temp\UAT\C+Program+Files+Epic+Games+UE_4.26\Rules\UATRules24283721.dll: Assembly does not exist
...
Program.Main: AutomationTool exiting with ExitCode=1 (Error_Unknown)
是否存在“未找到游戏目标”的常规原因?
解决方案
虽然不清楚它为什么起作用,但复制Source
目录中的默认 projectname.Target.cs 文件并将其重命名为 projectnameGame.Target.cs(并更改该文件的内部类名以匹配)似乎可以解决问题。目录中现在有 3 个Target.cs
文件Source
。
- 项目名.Target.cs
- 项目名称Game.Target.cs
- 项目名称Editor.Target.cs
那时一切都恢复了......这看起来很奇怪,但它有效!
推荐阅读
- php - Laravel 获取带有子目录的文件存储
- c++ - 确定包含转义字符的字符串的打印大小
- reactjs - 如何在不访问子组件代码的情况下从 React 函数组件的子组件数据中获取数据
- java - Selenium Java 中的元素可见性检查
- c# - MAUI 项目,无法添加新页面
- lua - 朋友挑战我,这是什么错误
- jquery - C# 控制器未从 Ajax POST 请求接收数据
- swift - 从 Swift App 使用 HTTP v1 API 发送 Firebase 通知
- angular - display '用户名或密码不正确。' 登录错误
- flutter - 旋转和反转文本