From 8ce4d94a96662989671305105a0421cb665379cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wiktor=20=C5=BBurawik?= Date: Fri, 9 May 2025 17:04:41 +0200 Subject: [PATCH] Refactor .NET version detection error reporting --- .../Flax.Build/Build/DotNet/DotNetSdk.cs | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/Source/Tools/Flax.Build/Build/DotNet/DotNetSdk.cs b/Source/Tools/Flax.Build/Build/DotNet/DotNetSdk.cs index aff928ad2..bf3c61f7e 100644 --- a/Source/Tools/Flax.Build/Build/DotNet/DotNetSdk.cs +++ b/Source/Tools/Flax.Build/Build/DotNet/DotNetSdk.cs @@ -283,8 +283,10 @@ namespace Flax.Build Log.Verbose($"Found the following .NET SDK versions: {string.Join(", ", dotnetSdkVersions)}"); Log.Verbose($"Found the following .NET runtime versions: {string.Join(", ", dotnetRuntimeVersions)}"); + string configuredDotnetVersion = Configuration.Dotnet; var dotnetSdkVersion = GetVersion(dotnetSdkVersions); var dotnetRuntimeVersion = GetVersion(dotnetRuntimeVersions); + if (!string.IsNullOrEmpty(dotnetSdkVersion) && !string.IsNullOrEmpty(dotnetRuntimeVersion) && ParseVersion(dotnetRuntimeVersion).Major > ParseVersion(dotnetSdkVersion).Major) { // Make sure the reference assemblies are not newer than the SDK itself @@ -296,21 +298,24 @@ namespace Flax.Build } while (!string.IsNullOrEmpty(dotnetRuntimeVersion) && ParseVersion(dotnetRuntimeVersion).Major > ParseVersion(dotnetSdkVersion).Major); } - var minVer = string.IsNullOrEmpty(Configuration.Dotnet) ? MinimumVersion.ToString() : Configuration.Dotnet; if (string.IsNullOrEmpty(dotnetSdkVersion)) { - if (dotnetSdkVersions.Any()) - Log.Warning($"Unsupported .NET SDK versions found: {string.Join(", ", dotnetSdkVersions)}. Minimum version required is .NET {minVer}."); - else - Log.Warning($"Missing .NET SDK. Minimum version required is .NET {minVer}."); + string installedVersionsText = dotnetSdkVersions.Any() + ? $"{string.Join(", ", dotnetSdkVersions)}" + : "None"; + Log.Warning(!string.IsNullOrEmpty(configuredDotnetVersion) + ? $"Configured .NET SDK '{configuredDotnetVersion}' not found. Installed versions: {installedVersionsText}." + : $"No compatible .NET SDK found within the supported range: .NET {MinimumVersion.ToString()} - {MaximumVersion.ToString()}. Installed versions: {installedVersionsText}."); return; } if (string.IsNullOrEmpty(dotnetRuntimeVersion)) { - if (dotnetRuntimeVersions.Any()) - Log.Warning($"Unsupported .NET runtime versions found: {string.Join(", ", dotnetRuntimeVersions)}. Minimum version required is .NET {minVer}."); - else - Log.Warning($"Missing .NET runtime. Minimum version required is .NET {minVer}."); + string installedRuntimeVersionsText = dotnetRuntimeVersions.Any() + ? $"{string.Join(", ", dotnetRuntimeVersions)}" + : "None"; + Log.Warning(!string.IsNullOrEmpty(configuredDotnetVersion) + ? $"Configured .NET runtime version '{configuredDotnetVersion}' not found. Installed versions: {installedRuntimeVersionsText}." + : $"No compatible .NET runtime found within the supported range: .NET {MinimumVersion.ToString()} - {MaximumVersion.ToString()}. Installed versions: {installedRuntimeVersionsText}."); return; } RootPath = dotnetPath;