diff --git a/build/_k-generate-projects.shade b/build/_k-generate-projects.shade index eaa2f3140f..bbdbcbf72f 100644 --- a/build/_k-generate-projects.shade +++ b/build/_k-generate-projects.shade @@ -341,8 +341,25 @@ functions private static string GetProjectKTargets(string packagesDir) { + Func getVersion = version => { + var dash = version.LastIndexOf('-'); + + if(dash != -1) + { + var lastToken = version.Substring(dash + 1); + + if(lastToken.StartsWith("t")) + { + return Int64.Parse(lastToken.Substring(1)); + } + + return Int64.Parse(lastToken); + } + return Int64.MaxValue; + }; + var projectK = Directory.GetDirectories(packagesDir, "ProjectK*") - .Select(p => new { Path = p, Build = Int32.Parse(p.Substring(p.LastIndexOf('-') + 1)) }) + .Select(p => new { Path = p, Build = getVersion(p) }) .OrderByDescending(p => p.Build) .FirstOrDefault(); diff --git a/build/_k.shade b/build/_k.shade index ca9f6a5ef2..292f0bc9a1 100644 --- a/build/_k.shade +++ b/build/_k.shade @@ -16,9 +16,26 @@ command='' nuget-install package='ProjectK' outputDir='packages' extra='-pre' once='ProjectK-NuGet' @{ + Func getVersion = version => { + var dash = version.LastIndexOf('-'); + + if(dash != -1) + { + var lastToken = version.Substring(dash + 1); + + if(lastToken.StartsWith("t")) + { + return Int64.Parse(lastToken.Substring(1)); + } + + return Int64.Parse(lastToken); + } + return Int64.MaxValue; + }; + string packagesDir = Path.Combine(Directory.GetCurrentDirectory(), "packages"), projectKDir = Directory.EnumerateDirectories(packagesDir, "ProjectK*") - .OrderByDescending(p => Int32.Parse(p.Substring(p.LastIndexOf('-') + 1))) + .OrderByDescending(getVersion) .First(); }