TFS 2013构建.NET 4.6/C#6.0

zim*_*nen 35 .net tfsbuild tfs2013 c#-6.0 .net-4.6

我们使用TFS 2013作为构建服务器.我已经开始了一个C#6.0项目,我正在努力建立它.我正在使用新的null条件运算符和我的构建chokes.我已经尝试在TFS服务器上安装了几个东西,包括目标包和VS 2015.我已经尝试将/tv:14.0提供给MSBuild参数.

Configuration\EntityEntityConfig.cs(270):无效的表达式术语'.'
Configuration\EntityEntityConfig.cs(283):无效的表达式术语'.'
Configuration\EntityEntityConfig.cs(283):语法错误,':'预期
......等

在这一点上,我不知道还有什么可以尝试.任何建议将不胜感激.

小智 49

使用TFS 2012的人报告成功使用:

/tv:14.0 /p:GenerateBuildInfoConfigFile=false /p:VisualStudioVersion=14.0
Run Code Online (Sandbox Code Playgroud)

作为MSBuild的参数.也许这可能适合您,但到目前为止,这对我的TFS 2013构建代理不起作用.

更新: 我终于得到了这个在TFS 2013上工作.这是我必须做的:

  1. 安装VS 2015或Microsoft Build Tools 2015(我有两个).
  2. 编辑我的构建以使用名为TfvcTemplate.12.xaml的构建过程模板.我想任何比这个更新的模板都可以,但DefaultTemplate.11.1.xaml肯定不会工作!)
  3. 将MSBuild参数设置为/tv:14.0我不必使用上面提到的其他两个参数.

  • @ J4N第2步的关键部分是TfvcTemplate.12.xaml使用Microsoft.TeamFoundation.Build.Activities.RunMSBuild活动而不是MSBuild活动.如果用RunMSBuild替换MSBuild活动(这就是我所做的),你应该没问题. (3认同)

Vic*_*SFT 17

似乎/tv:14.0命令参数不能按预期工作.请参阅: BuildActivity忽略ToolsVersion

作为解决方法,您需要自定义构建过程模板:

  1. 在Visual Studio中打开模板,找到Run MSBuild for Project MSBuild活动.
  2. 将ToolVersion设置为"14.0".
  3. 将ToolPath设置为MSBuild14(默认情况下为"C:\ Program Files(x86)\ MSBuild\14.0\Bin").
  4. 签入此构建过程模板并重新排队构建.

  • 最初这对我不起作用,但我最终发现"运行MSBuild For Project"在文件中**两次!**注意这一点. (9认同)