From da08b18ec5b4d993a9f0ca84a2fcf7adb3380974 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 (cherry picked from commit 6eaecc87933a1941abf3fd0b06a386e9b74e6ce3) --- .../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 b719fc17f..b4b0d7ab3 100644 --- a/Source/Tools/Flax.Build/Projects/VisualStudio/VisualStudioInstance.cs +++ b/Source/Tools/Flax.Build/Projects/VisualStudio/VisualStudioInstance.cs @@ -12,7 +12,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; @@ -173,9 +173,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}"; + } } }