UE5.6 C++项目升级UE5.7时用Rider加载项目失败的解决办法

书接上文《UE5.6 C++项目升级UE5.7时生成sln失败的解决办法》用Rider 打开项目以后显示游戏项目和引擎项目都加载失败,以下是解决办法

错误截图

Log内容

UnrealBuildTool failed with exit code 0x00000006

bash 复制代码
17:32:31.841: dotnet.exe "G:\Unreal Engine\UE_5.7\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.dll" -ProjectFiles -Rider -Automated -Minimize -NoMutex -Log=C:\Users\XXXXX\AppData\Local\JetBrains\Rider2025.3\log\UBT_GPF.txt -Platforms=Win64 -TargetTypes=Editor -TargetConfigurations=Development D:\UE5-CPP-RPGGame\RPGGame\RPGGame.uproject
17:32:32.197: Log file: C:\Users\XXXXX\AppData\Local\JetBrains\Rider2025.3\log\UBT_GPF.txt
17:32:32.365: Generating Rider project files:
17:32:32.663: Writing project files...
17:32:32.663: Warning: [Upgrade]
17:32:32.663: Warning: [Upgrade] Using backward-compatible build settings. The latest version of UE sets the following values by default, which may require code changes:
17:32:32.663: Warning: [Upgrade]     WindowsPlatform.bStrictInlineConformance = true        => Updates MSVC inline conformance (Remove unreferenced COMDAT) to true (Previously: false).
17:32:32.663: Warning: [Upgrade]     UndefinedIdentifierWarningLevel = WarningLevel.Error   => Enables compile-time validation of undefined identifiers in conditional expressions. (Previously: Off).
17:32:32.663: Warning: [Upgrade] Suppress this message by setting 'DefaultBuildSettings = BuildSettingsVersion.V6;' in RPGGameEditor.Target.cs, and explicitly overriding settings that differ from the new defaults.
17:32:32.663: Warning: [Upgrade]
17:32:32.663: Warning: [Upgrade]
17:32:32.663: Warning: [Upgrade] Using backward-compatible include order. The latest version of UE has changed the order of includes, which may require code changes. The current setting is:
17:32:32.663: Warning: [Upgrade]     IncludeOrderVersion = EngineIncludeOrderVersion.Unreal5_6
17:32:32.663: Warning: [Upgrade] Suppress this message by setting 'IncludeOrderVersion = EngineIncludeOrderVersion.Unreal5_7;' in RPGGameEditor.Target.cs.
17:32:32.663: Warning: [Upgrade] Alternatively you can set this to 'EngineIncludeOrderVersion.Latest' to always use the latest include order. This will potentially cause compile errors when integrating new versions of the engine.
17:32:32.663: Warning: [Upgrade]
17:32:32.772: Wrote partial receipt to D:\UE5-CPP-RPGGame\RPGGame\Binaries\Win64\RPGGameEditor.target
17:32:32.772: Exception while generating include data for Target:RPGGameEditor, Platform: Win64, Configuration: Development
17:32:32.772: RPGGameEditor modifies the values of properties: [ UndefinedIdentifierWarningLevel: Off != Error ]. This is not allowed, as RPGGameEditor has build products in common with UnrealEditor.
17:32:32.772: Remove the modified setting, change RPGGameEditor to use a unique build environment by setting 'BuildEnvironment = TargetBuildEnvironment.Unique;' in the RPGGameEditorTarget constructor, or set bOverrideBuildEnvironment = true to force this setting on.
17:32:40.330: Writing project files... 100%
17:32:40.381: Generating QueryTargets data for editor...
17:32:40.383: Compiling Rules Assemblies 100%
17:32:40.392: Writing Query Target Info 100%
17:32:40.392: Generating QueryTargets data for editor took 0.01s
17:32:40.395: Result: Succeeded
17:32:40.395: Total execution time: 8.44 seconds

原始RPGGameTarget.cs

csharp 复制代码
// Copyright Epic Games, Inc. All Rights Reserved.

using UnrealBuildTool;
using System.Collections.Generic;

public class RPGGameTarget : TargetRules
{
	public RPGGameTarget(TargetInfo Target) : base(Target)
	{
		Type = TargetType.Game;
		DefaultBuildSettings = BuildSettingsVersion.V5;
		IncludeOrderVersion = EngineIncludeOrderVersion.Unreal5_6;
		ExtraModuleNames.Add("RPGGame");
	}
}

原始RPGGameEditorTarget.cs

csharp 复制代码
// Copyright Epic Games, Inc. All Rights Reserved.

using UnrealBuildTool;
using System.Collections.Generic;

public class RPGGameEditorTarget : TargetRules
{
	public RPGGameEditorTarget( TargetInfo Target) : base(Target)
	{
		Type = TargetType.Editor;
		DefaultBuildSettings = BuildSettingsVersion.V5;
		IncludeOrderVersion = EngineIncludeOrderVersion.Unreal5_6;
		ExtraModuleNames.Add("RPGGame");
	}
}

修改后的RPGGameTarget.cs

csharp 复制代码
// Copyright Epic Games, Inc. All Rights Reserved.

using UnrealBuildTool;
using System.Collections.Generic;

public class RPGGameTarget : TargetRules
{
	public RPGGameTarget(TargetInfo Target) : base(Target)
	{
		Type = TargetType.Game;
		DefaultBuildSettings = BuildSettingsVersion.Latest;
		IncludeOrderVersion = EngineIncludeOrderVersion.Latest;
		ExtraModuleNames.Add("RPGGame");
	}
}

修改后的RPGGameEditorTarget.cs

csharp 复制代码
// Copyright Epic Games, Inc. All Rights Reserved.

using UnrealBuildTool;
using System.Collections.Generic;

public class RPGGameEditorTarget : TargetRules
{
	public RPGGameEditorTarget( TargetInfo Target) : base(Target)
	{
		Type = TargetType.Editor;
		DefaultBuildSettings = BuildSettingsVersion.Latest;
		IncludeOrderVersion = EngineIncludeOrderVersion.Latest;
		ExtraModuleNames.Add("RPGGame");
	}
}
相关推荐
zhangzhangkeji5 小时前
UE5 C++(39):创建 TimeHandle 定时器
ue5
zhangzhangkeji5 小时前
UE5 C++(38):创建 Interface接口
ue5
微光守望者10 小时前
Unity小知识【1】:刚体(Rigidbody)与碰撞器(Collider)的区别,你真的清楚吗?
unity·游戏引擎
孟无岐10 小时前
【Laya】Byte 二进制数据处理
网络·typescript·游戏引擎·游戏程序·laya
孟无岐12 小时前
【Laya】ClassUtils 类反射工具
typescript·游戏引擎·游戏程序·laya
June bug14 小时前
【配环境】unity项目开发环境
unity·游戏引擎
zhangzhangkeji15 小时前
UE5 C++(40):创建 3DWidget 并渲染到屏幕上,涉及类 UUserWidget 与 UWidgetCompopent
ue5
zhangzhangkeji15 小时前
UE5 C++(41):创建 ApplyDamage 并接受伤害 TakeDamage
ue5
陈友松16 小时前
UE5运行时操作撤销系统插件
ue5·ue4·运行时回退撤销
北冥没有鱼啊16 小时前
UE5 离谱问题,角色动画不播放
游戏·ue5·ue4·游戏开发·虚幻