Silly mistake. The issue is on this line:
Write-Host "::vso[task.setvariable variable=SolutionName;]$SolutionName"
Which should be:
Write-Host "##vso[task.setvariable variable=SolutionName;]$SolutionName"
Not sure why I was using colons...