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

6
我们有一个本地的TFS 2012服务器和构建服务器。我们正在升级到VS和TFS 2017。目前,有一个请求需要设置另一个构建服务器,以便我们可以从现有的TFS服务器构建新的2017项目。我创建了一个新的构建服务器,并在上面安装了TFS 2012构建服务和VS2017。我创建了一个新的构建定义,但它无法编译,错误显示出2017语法变化在2012中无效等问题。如何告诉配置此设置以针对已安装的VS2017构建该项目?

我们正在使用DefaultTemplate11.1xaml。我读到有新版本可以从新路径获取MSBuild版本,但我不知道从哪里获取这些新模板。 - Sam
构建模板在TFS2017中完全不同。你可能需要权衡一下解决这个问题需要多长时间。升级会更容易。我最近已经完成了升级,因为你正在使用2012版本,所以你必须先升级到2013或者像我一样先升级到2015再升级到2017。我还不得不稍微修改一下过程模板。 - Jeremy Thompson
那么TFS 2012不能直接升级到2017?我们不知道这一点。你知道为什么吗?我看到有些地方说可以修改DefaultTemplate.11.xaml以指向新的MSBuild版本,但是在我的文件中似乎没有提到该部分。 - Sam
我必须编辑进程模板的 XML 文件。使用 tfs2017 重新创建构建定义更容易。 - Jeremy Thompson
2个回答

9
感谢这篇文章,我能够使用TFS 2012持续集成与构建服务器构建C# 6语法,使用Visual Studio 2017。希望这能节省下一个人的时间来解决这个问题。
以下是我为了使TFS 2012构建C# 6语法所做的更改列表。在具有构建代理的机器上安装VS 2017企业版,在安装设置页面上,确保选择MS Buildenter image description here
编辑构建定义,并确保MSBuild参数为/tv:15.0 /p:GenerateBuildInfoConfigFile=false /p:VisualStudioVersion=15.0

enter image description here

请检查您的构建定义所使用的模板,并通过进入源控制资源管理器并转到团队项目和BuildProcessTemplate进行修改,该文件应该有.xaml扩展名,通过双击来修改它enter image description here

应该有两个操作显示为Run MSBuild for Project。 您需要将它们的toolpath属性都更改为指向构建服务器上msbuild.exe所在的父文件夹。在我的情况下,构建服务器是32位机器,因此Bin文件夹的路径在Program Files中没有(x86),您需要检查您的构建服务器以输入正确的路径。 enter image description here 完成修改后,您需要保存xaml文件并提交更改。


嗨,@gavin,XAML 不是最适合搜索的,你能告诉我 ToolPath 变量的结构在哪里吗? - Gerardo Lima
搜索 <mtbwa:MSBuild。添加 ToolPath="C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin"。 - stevieg
你们是如何在XAML模板中使用GUI工具的?我一直在安装这个小工具时遇到各种问题。哦,天啊,我想念TFS的Power tools。 - Christian

2
旧版的Visual Studio将msbuild安装在C:\Program Files (x86)\MSBuild\<version>\bin中,而运行MSBuild活动使用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的答案:如何让TFS 2017 XAML Builds与VS 2017配合工作
此外,XAML Build已在TFS 2017中被弃用,并且将不会在TFS的下一个版本(2018)中提供。 VSTS已经不再支持它们。
“我正在寻找托管的XAML构建控制器。它去哪里了?”托管的XAML构建控制器已不再受支持。自2016年4月起创建的帐户无法访问它。我们计划从所有帐户中删除托管的XAML构建控制器,可能最早在2017年3月。
由于您将要升级并使用TFS2017,强烈建议您将构建转换为vNext Build以访问一些新技术和支持。有关更多信息,请参见{{link2:Why Should I Leave XAML Builds?}}

是的,我今天早上意识到了。我查阅了相关资料。我想我只需要转移到新的构建平台即可。 - Sam
好主意,Sam。最佳实践是在组织中保持应用程序的相同版本和SP级别。 - Jeremy Thompson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接