# # Get-UmbracoVersion # Gets the Umbraco version # function Get-UmbracoVersion { $uenv = Get-UmbracoBuildEnv try { [Reflection.Assembly]::LoadFile($uenv.Semver) > $null } catch { Write-Error -Exception $_.Exception -Message "Failed to load $uenv.Semver" break } # parse SolutionInfo and retrieve the version string $filepath = "$($uenv.SolutionRoot)\src\SolutionInfo.cs" $text = [System.IO.File]::ReadAllText($filepath) $match = [System.Text.RegularExpressions.Regex]::Matches($text, "AssemblyInformationalVersion\(`"(.+)?`"\)") $version = $match.Groups[1] # semver-parse the version string $semver = [SemVer.SemVersion]::Parse($version) $release = "" + $semver.Major + "." + $semver.Minor + "." + $semver.Patch $versions = new-object -typeName PsObject $versions | add-member -memberType NoteProperty -name Semver -value $semver $versions | add-member -memberType NoteProperty -name Release -value $release $versions | add-member -memberType NoteProperty -name Comment -value $semver.PreRelease $versions | add-member -memberType NoteProperty -name Build -value $semver.Build return $versions }