From 6eaecc87933a1941abf3fd0b06a386e9b74e6ce3 Mon Sep 17 00:00:00 2001 From: Wojciech Figat Date: Sat, 17 Dec 2022 12:58:58 +0100 Subject: [PATCH] Fix `VisualStudioInstance.GetInstances()` to be sorted from newest to oldest --- .../VisualStudio/VisualStudioInstance.cs | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/Source/Tools/Flax.Build/Projects/VisualStudio/VisualStudioInstance.cs b/Source/Tools/Flax.Build/Projects/VisualStudio/VisualStudioInstance.cs index 28e11c124..a4a70798d 100644 --- a/Source/Tools/Flax.Build/Projects/VisualStudio/VisualStudioInstance.cs +++ b/Source/Tools/Flax.Build/Projects/VisualStudio/VisualStudioInstance.cs @@ -13,7 +13,7 @@ namespace Flax.Build.Projects.VisualStudio /// /// The Visual Studio instance utility. /// - public sealed class VisualStudioInstance + public sealed class VisualStudioInstance : IComparable { private static List _installDirs; private static int _hasFlaxVS; @@ -174,9 +174,32 @@ namespace Flax.Build.Projects.VisualStudio } } + // Sort from the latest to the oldest + _installDirs.Sort(); + foreach (var e in _installDirs) Log.Verbose($"Found {e.Version} at {e.Path}"); return _installDirs; } + + /// + public int CompareTo(VisualStudioInstance other) + { + if (Version == other.Version) + return Path.CompareTo(other.Path); + return (int)Version < (int)other.Version ? 1 : -1; + } + + /// + public override int GetHashCode() + { + return Path.GetHashCode(); + } + + /// + public override string ToString() + { + return $"{Version} at {Path}"; + } } }