From 7df206f533724314a60a1daf7655c7250abfcba9 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Tue, 18 Apr 2023 18:18:43 +0200 Subject: [PATCH] Fix deploying system .NET runtime files after system-installed .NET has been updated --- Source/Editor/Cooker/Steps/DeployDataStep.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Source/Editor/Cooker/Steps/DeployDataStep.cpp b/Source/Editor/Cooker/Steps/DeployDataStep.cpp index 805ca2f1f..c9bbc016e 100644 --- a/Source/Editor/Cooker/Steps/DeployDataStep.cpp +++ b/Source/Editor/Cooker/Steps/DeployDataStep.cpp @@ -124,6 +124,23 @@ bool DeployDataStep::Perform(CookingData& data) FileSystem::NormalizePath(srcDotnet); LOG(Info, "Using .Net Runtime {} at {}", version, srcDotnet); + // Check if previously deployed files are valid (eg. system-installed .NET was updated from version 7.0.3 to 7.0.5) + { + const String dotnetCacheFilePath = data.CacheDirectory / TEXT("SystemDotnetInfo.txt"); + String dotnetCachedValue = String::Format(TEXT("{};{}"), version, srcDotnet); + if (FileSystem::DirectoryExists(dstDotnet)) + { + String cachedData; + File::ReadAllText(dotnetCacheFilePath, cachedData); + if (cachedData != dotnetCachedValue) + { + FileSystem::DeleteDirectory(dstDotnet); + FileSystem::CreateDirectory(dstDotnet); + } + } + File::WriteAllText(dotnetCacheFilePath, dotnetCachedValue, Encoding::ANSI); + } + // Deploy runtime files FileSystem::CopyFile(dstDotnet / TEXT("LICENSE.TXT"), srcDotnet / TEXT("LICENSE.txt")); FileSystem::CopyFile(dstDotnet / TEXT("LICENSE.TXT"), srcDotnet / TEXT("LICENSE.TXT"));