Você provavelmente já fez isso funcionar, mas isso pode ajudar outra pessoa no futuro. Eu me deparei com essa questão recentemente e ela me fez seguir na direção certa e, finalmente, me levou a uma solução.
Outra solução possível para isso é atualizar manualmente seus arquivos de projeto para direcionar a versão do MSBuild com a qual você deseja que seus projetos sejam criados.
Recentemente, passei por uma atualização do servidor de compilação TeamCity e já instalei o Microsoft Build Tools 2015 nele. Achei que tinha tudo pronto no servidor de compilação, tinha minha solução voltada para C # 6.0 e todos os projetos voltados para .net 4.6.1. Como você, tudo com código específico do C # 6.0 construído perfeitamente em meu ambiente local, mas meu servidor de compilação TeamCity não gostou de nada disso.
Conforme mencionado por outros, tentei usar o pacote NuGet Microsoft.Net.Compilers. A versão mais recente permitiu que a construção funcionasse no meu servidor de construção, mas não me deixou publicar meu código localmente (um requisito meu). Versões anteriores desse pacote NuGet me permitiam publicar, mas a construção não funcionava.
O que descobri que tinha que fazer foi modificar cada arquivo de projeto em minha solução para direcionar especificamente a versão do MSBuild que poderia lidar com o código C # 6.0. Em cada um dos meus arquivos de projeto, encontrei uma linha semelhante à seguinte:
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
com o componente principal dessa linha sendo a parte ToolsVersion dela. Simplesmente mudei esta linha em meus arquivos de projeto para ler o seguinte:
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
A diferença aqui era que eu estava visando a versão 14, não 4. A versão 14.0 corresponde ao Build Tools 2015. Ao alterar isso, meu servidor de build TeamCity usou a versão correta do MSBuild e foi capaz de construir meu código C # 6.0.
Eu também tive que atualizar manualmente o nó xml TargetFrameworkVersion deste para usar 4.6.1 porque o VS2015 não estava fazendo algo certo e bagunçou minha compilação local, mas isso não é relevante aqui.
Por favor, alguém me corrija se eu estiver errado, mas apenas para referência, acho que os números das versões são mais ou menos assim:
4.0 = VS2012
12,0 = VS2013
14,0 = VS2015
15.0 = VS2017
Eu acredito que se você quisesse usar .net 4.7, você teria que ter o Build Tools 2017 instalado e ter seus projetos visando 15.0 em vez de 14.0, mas eu não verifiquei isso.