使用TFS 2012构建服务器构建VS2017项目

我们有一个内部部署的TFS 2012服务器和构建服务器。 我们正在升级到VS和TFS 2017.目前,有人要求设置另一个构建服务器,以便我们从现有的TFS服务器构建新的2017项目。 我创建了一个新的构建服务器并在其上安装了TFS 2012构建服务以及VS2017。 我创建了一个新的构建定义,但它无法编译,错误显示的是2017年的语法更改,这些更改在2012年无效。如何根据已安装的VS2017来配置此项目来构建项目?

旧的Visual Studio版本将msbuild安装到C:\Program Files (x86)\MSBuild\\bin ,显然RunMSBuild活动使用ToolVersion + ToolArchitecture来计算此路径。

VS 2017安装它C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Enterprise \ MSBuild \ 15.0 \ bin和RunMSBuild无法再计算正确的路径。 您不能使用旧的DefaultTemplate11.1xaml与VS2017集成。

要使其工作,您可以尝试修改TFSBuildServiceHost.exe.config并且必须在构建服务器上安装VS 2013或VS 2015的版本才能使其正常工作。 更多细节步骤请在此链接中关注Jonesy2488的答案: 如何让VS 2017使用TFS 2017 XAML Builds


此外,XAML Build在TFS 2017中已弃用,并且不会在TFS下一版本的TFS(2018)中提供。 VSTS已经不再支持它们了。

我正在寻找托管的XAML构建控制器。 它去了哪里?

不再支持托管的XAML构建控制器。 2016年4月或之后创建的帐户无权访问。 我们计划在2017年3月之前从所有帐户中删除托管的XAML构建控制器。

资源

因为您要升级并使用TFS2017。 强烈建议您将构建转换为vNext Build以访问一些新技术和支持。 有关更多信息,请参阅我为什么要保留XAML构建?

感谢这篇文章,我能够使用TFS 2012与使用Visual Studio 2017构建C#6语法的构建服务器持续集成。希望这将为下一个人节省一些时间来试图解决这个问题。

以下是为了让TFS 2012构建c#6语法而更改的列表。 在具有构建代理的计算机上,安装vs 2017 enterprise,在安装设置页面上,确保选择了MS build 在此处输入图像描述

编辑Build定义并确保MSBuild Argument为/tv:15.0 /p:GenerateBuildInfoConfigFile=false /p:VisualStudioVersion=15.0

在此处输入图像描述

检查构建定义使用的模板并通过转到源控件资源管理器并进入团队项目并进行BuildProcessTemplate来修改它,它应该有.xaml文件,通过双击它来修改它 在此处输入图像描述

应该有2个操作说运行MSBuild for Project。 您需要将其toolpath属性更改为指向构建服务器上的msbuild.exe父文件夹。 在我的情况下,构建服务器是32位机器,因此Bin文件夹的路径没有Program Files旁边的(x86),您需要检查构建服务器以在此处输入正确的路径。 在此处输入图像描述 完成更改后,您需要保存xaml并将其签入。