From 48343897cd19833b58a238993f3c215ebdb95102 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Mon, 10 Mar 2025 18:46:15 +0100 Subject: [PATCH] Fix .NET files deploy regression on AOT platforms --- Source/Editor/Cooker/Steps/DeployDataStep.cpp | 46 +++++++++++-------- 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/Source/Editor/Cooker/Steps/DeployDataStep.cpp b/Source/Editor/Cooker/Steps/DeployDataStep.cpp index 489321d99..d6d978439 100644 --- a/Source/Editor/Cooker/Steps/DeployDataStep.cpp +++ b/Source/Editor/Cooker/Steps/DeployDataStep.cpp @@ -214,31 +214,39 @@ bool DeployDataStep::Perform(CookingData& data) FileSystem::NormalizePath(srcDotnet); LOG(Info, "Using .NET Runtime {} at {}", TEXT("Host"), srcDotnet); - // Get major Version - Array pathParts; - srcDotnet.Split('/', pathParts); + // Get .NET runtime version String version; - for (int i = 0; i < pathParts.Count(); i++) + if (usAOT) { - if (pathParts[i] == TEXT("runtimes")) + // Precompiled + version = StringUtils::ToString(GAME_BUILD_DOTNET_RUNTIME_MIN_VER); + } + else + { + // Detect from path + Array pathParts; + srcDotnet.Split('/', pathParts); + for (int i = 0; i < pathParts.Count(); i++) { - Array versionParts; - pathParts[i - 1].Split('.', versionParts); - if (!versionParts.IsEmpty()) + if (pathParts[i] == TEXT("runtimes")) { - const String majorVersion = versionParts[0].TrimTrailing(); - int32 versionNum; - StringUtils::Parse(*majorVersion, majorVersion.Length(), &versionNum); - if (Math::IsInRange(versionNum, GAME_BUILD_DOTNET_RUNTIME_MIN_VER, GAME_BUILD_DOTNET_RUNTIME_MAX_VER)) // Check for major part - version = majorVersion; + Array versionParts; + pathParts[i - 1].Split('.', versionParts); + if (!versionParts.IsEmpty()) + { + const String majorVersion = versionParts[0].TrimTrailing(); + int32 versionNum; + StringUtils::Parse(*majorVersion, majorVersion.Length(), &versionNum); + if (Math::IsInRange(versionNum, GAME_BUILD_DOTNET_RUNTIME_MIN_VER, GAME_BUILD_DOTNET_RUNTIME_MAX_VER)) // Check for major part + version = majorVersion; + } } } - } - - if (version.IsEmpty()) - { - data.Error(TEXT("Failed to find supported .NET version for the current host platform.")); - return true; + if (version.IsEmpty()) + { + data.Error(TEXT("Failed to find supported .NET version for the current host platform.")); + return true; + } } // Deploy runtime files