# finds msbuild function Get-VisualStudio($vswhere) { $vsPath = "" $vsVer = "" &$vswhere | foreach { if ($_.StartsWith("installationPath:")) { $vsPath = $_.SubString("installationPath:".Length).Trim() } if ($_.StartsWith("installationVersion:")) { $vsVer = $_.SubString("installationVersion:".Length).Trim() } } if ($vsPath -eq "") { return $null } $vsVerParts = $vsVer.Split('.') $vsMajor = [int]::Parse($vsVerParts[0]) $vsMinor = [int]::Parse($vsVerParts[1]) if ($vsMajor -eq 15) { $msBuild = "$vsPath\MSBuild\$vsMajor.$vsMinor\Bin" } elseif ($vsMajor -eq 14) { $msBuild = "c:\Program Files (x86)\MSBuild\$vsMajor\Bin" } else { return $null } $msBuild = "$msBuild\MsBuild.exe" $vs = new-object -typeName PsObject $vs | add-member -memberType NoteProperty -name Path -value $vsPath $vs | add-member -memberType NoteProperty -name Major -value $vsMajor $vs | add-member -memberType NoteProperty -name Minor -value $vsMinor $vs | add-member -memberType NoteProperty -name MsBuild -value $msBuild return $vs }