Search code examples
.nettfsbuildc#-6.0.net-4.6

TFS 2013 building .NET 4.6 / C# 6.0


We use TFS 2013 to as our build server. I've started a C# 6.0 project and I am trying to get it to build. I am using the new null-conditional operators, and my build chokes. I've tried installing several things on the TFS server, including the targeting pack and VS 2015. I've tried providing /tv:14.0 to the MSBuild arguments.

Configuration\EntityEntityConfig.cs (270): Invalid expression term '.'
Configuration\EntityEntityConfig.cs (283): Invalid expression term '.'
Configuration\EntityEntityConfig.cs (283): Syntax error, ':' expected
... etc.

At this point, I have no idea what else to try. Any suggestions would be greatly appreciated.


Solution

  • People using TFS 2012 have reported success using:

    /tv:14.0 /p:GenerateBuildInfoConfigFile=false /p:VisualStudioVersion=14.0
    

    as arguments to MSBuild. Perhaps this might work for you, but so far this does not work for my TFS 2013 build agents.

    Update: I finally got this to work on TFS 2013. Here is what I had to do:

    1. Install VS 2015 or Microsoft Build Tools 2015 (I have both).
    2. Edit my build to use a build process template called TfvcTemplate.12.xaml. I guess that any template newer than this one will do, but the DefaultTemplate.11.1.xaml definitely won't work!)
    3. Set MSBuild arguments to /tv:14.0 I did not have to use the other two I mentioned above.