UE4生成Target文件
问题
在UE4中Build PC时,遇到下面报错:
ERROR: Couldn't find target rules file for target 'MyMiniGameClient' in rules assembly 'UE4Rules, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'.
这是因为该工程缺少 Client 的Target文件。如果此时再在Rider中打开工程,选择 Development Client Win64 MyMiniGame 直接Build,会遇到:
28>MobileDeviceInterface.csproj: Error MSB4057 : 该项目中不存在目标“Games\MyMiniGame”。
解决方法
一、效仿下图中红框的文件(MyMiniGame.Target.cs)得到 Client.Target.cs ,并将内容修改为下面内容:
// Copyright 1998-2019 Epic Games, Inc. All Rights Reserved./* using UnrealBuildTool;
using System.Collections.Generic;public class MyMiniGameTarget : TargetRules
{public MyMiniGameTarget(TargetInfo Target) : base(Target){Type = TargetType.Game;DefaultBuildSettings = BuildSettingsVersion.V2;ExtraModuleNames.Add("MyMiniGame");}
}*/// Copyright Epic Games, Inc. All Rights Reserved.using UnrealBuildTool;
using System.Collections.Generic;public class MyMiniGameClientTarget : TargetRules
{public MyMiniGameClientTarget(TargetInfo Target) : base(Target){// 1. 设置目标类型为 ClientType = TargetType.Client;// 2. 设置默认构建配置规则DefaultBuildSettings = BuildSettingsVersion.V2;// 3. 额外模块名称:包含本项目的主游戏模块ExtraModuleNames.Add("MyMiniGame"); // 确保这是你项目的主模块名// 4. (可选) 客户端特定配置// bUsesSteam = true; // 例如,如果使用Steamworks,可以取消注释// bUseLoggingInShipping = true; // 在Shipping版本中也保留日志功能// GlobalDefinitions.Add("MY_CLIENT_DEFINE=1"); // 添加全局宏定义}
}
二、对项目 Generate Project Files ,然后重新在Rider中编译即可。