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}"; + } } }