TFS 2013 构建 .NET 4.6 / C# 6.0

TFS 2013 building .NET 4.6 / C# 6.0

我们使用 TFS 2013 作为我们的构建服务器。我已经启动了一个 C# 6.0 项目,我正在尝试构建它。我正在使用新的空条件运算符,并且我的构建阻塞了。我试过在 TFS 服务器上安装一些东西,包括目标包和 VS 2015。我试过为 MSBuild 参数提供 /tv:14.0。

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

此时,我不知道还能尝试什么。任何建议将不胜感激。

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

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

作为 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 我不必使用上面提到的其他两个参数。

/tv:14.0 命令参数似乎没有按预期工作。看:

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

  1. 打开 Visual Studio 中的模板并找到 运行 MSBuild for Project MSBuild activity.
  2. 将工具版本设置为“14.0”。
  3. 将 ToolPath 设置为以 MSBuild14 为目标(默认情况下:"C:\Program Files (x86)\MSBuild.0\Bin")。
  4. 签入此构建过程模板并重新排队构建。

如果您选择在构建机器上安装 VS 2015,有一个重要的步骤:打开它以供首次使用,并确保它已获得许可。否则,您将继续遇到构建失败。

如果使用 UpgradeTemplate.xml 则只需更改 "Run TfsBuild for Configuration Folder":

1.Set 目标为 MSBuild14 的工具路径(默认情况下:"C:\Program Files (x86)\MSBuild.0\Bin")。

2.Check 在此构建过程模板中并重新排队构建。

谢谢!

构建过程决定了您使用的构建工具版本。普通构建定义使用 "DefaultTemplate.11.1.xaml" 构建过程模板,该模板配置为使用 Build Tools 2013。

解决此问题的最快方法是切换到 "TfvcTemplate.12.xaml"

如果要修改默认模板,需要从 $/[Project]/BuildProcessTemplates/DefaultTemplate.11.1.xaml 中查看,然后编辑 Arguments 以设置 BuildProcessVersion

如果您 运行 DefaultTempalte.11.1.xaml 然后找到 msbuild activity(此模板中有 2 个,它们的标签是 "Run MSBuild for Project")并更改ToolPath 属性 到 msbuild 工具集的路径(对我来说是 "C:\Program Files (x86)\MSBuild.0\Bin")。

没有其他必要。