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