在TFS 2012上构建c#6.0

时间:2015-05-04 11:42:10

标签: c# tfs msbuild tfs2012 roslyn

如何在TFS 2012上使用C#6.0功能构建Visual Studio 2015解决方案,而无需在构建代理上安装Visual Studio 2015(使用Microsoft Build Tools 2015 RC)

我已经安装了MSBuild Tools但我仍然有例外。如何告诉我的构建模板使用MSBuild 14(仅适用于一个项目)

为什么我的TFS 2012在BuildAgent只安装了Visual Studio 2012时编译异步并等待(c#5.0)没有任何问题?

我尝试将BuildProcessTemplate的ToolPath更改为MSBuild / 14.0 /但是我遇到了构建错误:

  

C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Microsoft.CSharp.targets(316):“csc2.exe”已退出,代码为-532462766。

安装Microsoft.Net.Compilers 1.0.0-rc2编译器会出现同样的错误。

如果我使用命令行编译项目,我会得到完全相同的错误/尽管在使用具有完全相同参数的命令行时我的开发机器上没有错误。

这是我在命令行中获得的异常:

AspNetUsers

4 个答案:

答案 0 :(得分:17)

我使用的是TFS2013 U5,但它会是相同的:

  • 在BuildServer计算机上安装VS2015 RTM
  • 将此内容放入BuildTemplate
  • 的Process部分中的MSBuild参数中
  

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

编译和VS-unit测试现在都运行正常。

答案 1 :(得分:5)

尝试使用

/p:VisualStudioVersion=14.0

/tv:14 

在构建参数中

答案 2 :(得分:2)

JiříZídek的回答是正确的,但缺少一个关键细节。我必须执行以下操作才能使用TFS 2012 Update 2:

  1. 在构建服务器上安装Visual Studio 2015
  2. 将构建定义中的MSBuild Arguments设置为/p:VisualStudioVersion=14.0(即Visual Studio 2015模式)
  3. 在每个使用C#6语法的项目中,安装NuGet包Microsoft.Net.Compilers install-package Microsoft.Net.Compilers
  4. #3对我来说有所不同。

答案 3 :(得分:0)

对于那些使用TFS 2012和VS 2017绕过2015年的人,您可以在enter link description here

上关注我的回答

TFS 2012 and VS 2017 continuous integration build