From eaabd56caef5a8ca8054fff508d23f78475642ad Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Sat, 25 Nov 2023 13:03:22 +0100 Subject: [PATCH] Add manual dotnet versions search on windows --- .../Flax.Build/Build/DotNet/DotNetSdk.cs | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/Source/Tools/Flax.Build/Build/DotNet/DotNetSdk.cs b/Source/Tools/Flax.Build/Build/DotNet/DotNetSdk.cs index 8aabdfd1a..a291451f2 100644 --- a/Source/Tools/Flax.Build/Build/DotNet/DotNetSdk.cs +++ b/Source/Tools/Flax.Build/Build/DotNet/DotNetSdk.cs @@ -264,10 +264,9 @@ namespace Flax.Build Log.Warning($"Missing .NET SDK ({dotnetPath})"); return; } - if (dotnetSdkVersions == null) - dotnetSdkVersions = GetVersions(Path.Combine(dotnetPath, "sdk")); - if (dotnetRuntimeVersions == null) - dotnetRuntimeVersions = GetVersions(Path.Combine(dotnetPath, "shared", "Microsoft.NETCore.App")); + + dotnetSdkVersions = MergeVersions(dotnetSdkVersions, GetVersions(Path.Combine(dotnetPath, "sdk"))); + dotnetRuntimeVersions = MergeVersions(dotnetRuntimeVersions, GetVersions(Path.Combine(dotnetPath, "shared", "Microsoft.NETCore.App"))); dotnetSdkVersions = dotnetSdkVersions.Where(x => IsValidVersion(Path.Combine(dotnetPath, "sdk", x))); dotnetRuntimeVersions = dotnetRuntimeVersions.Where(x => IsValidVersion(Path.Combine(dotnetPath, "shared", "Microsoft.NETCore.App", x))); @@ -476,6 +475,18 @@ namespace Flax.Build return Path.Combine(root, version); } + private static IEnumerable MergeVersions(IEnumerable a, IEnumerable b) + { + if (a == null || !a.Any()) + return b; + if (b == null || !b.Any()) + return a; + var result = new HashSet(); + result.AddRange(a); + result.AddRange(b); + return result; + } + private static Version ParseVersion(string version) { // Give precedence to final releases over release candidate / beta releases