public static VersionFolder Parse(string FolderPath)
        {
            var ret = default(VersionFolder);

            var FolderName = System.IO.Path.GetFileName(FolderPath);

            if (FolderName.StartsWith(VersionFolderPrefix, StringComparison.InvariantCultureIgnoreCase))
            {
                var PotentialVersion = FolderName.Substring(VersionFolderPrefix.Length);
                if (Version.TryParse(PotentialVersion, out var V1))
                {
                    ret = new VersionFolder(FolderPath, V1);
                }
            }

            return(ret);
        }
        public static VersionFolder Find(string FolderPath)
        {
            var ret = default(VersionFolder);

            var PathToCheck = FolderPath;

            while (PathToCheck.IsNotNullOrEmpty() && ret == default)
            {
                try {
                    if (VersionFolder.Parse(PathToCheck) is { } V1)
                    {
                        ret = V1;
                    }
                    else
                    {
                        PathToCheck = System.IO.Path.GetDirectoryName(PathToCheck);
                    }
                } catch (Exception ex) {