/// <summary>
        /// Gets a list of Windows Sdk installation directories, ordered by preference
        /// </summary>
        /// <returns>String with the name</returns>
        public static List <KeyValuePair <string, DirectoryReference> > GetWindowsSdkDirs()
        {
            List <KeyValuePair <string, DirectoryReference> > WindowsSdkDirs = new List <KeyValuePair <string, DirectoryReference> >();

            // Add the default directory first
            VersionNumber      Version;
            DirectoryReference DefaultWindowsSdkDir;

            if (WindowsPlatform.TryGetWindowsSdkDir(null, out Version, out DefaultWindowsSdkDir))
            {
                WindowsSdkDirs.Add(new KeyValuePair <string, DirectoryReference>(Version.ToString(), DefaultWindowsSdkDir));
            }

            // Add all the other directories sorted in reverse order
            IReadOnlyDictionary <VersionNumber, DirectoryReference> WindowsSdkDirPairs = WindowsPlatform.FindWindowsSdkDirs();

            foreach (KeyValuePair <VersionNumber, DirectoryReference> Pair in WindowsSdkDirPairs.OrderByDescending(x => x.Key))
            {
                if (!WindowsSdkDirs.Any(x => x.Value == Pair.Value))
                {
                    WindowsSdkDirs.Add(new KeyValuePair <string, DirectoryReference>(Pair.Key.ToString(), Pair.Value));
                }
            }

            return(WindowsSdkDirs);
        }