【问题标题】:Build VS2017 project with TFS 2012 build server使用 TFS 2012 构建服务器构建 VS2017 项目
【发布时间】:2018-02-24 23:07:43
【问题描述】:

我们有一个本地 TFS 2012 服务器和构建服务器。我们正在升级到 VS 和 TFS 2017。目前,有人要求设置另一个构建服务器,这将允许我们从现有的 TFS 服务器构建新的 2017 项目。我创建了一个新的构建服务器并在其上安装了 TFS 2012 构建服务以及 VS2017。我创建了一个新的构建定义,但它无法编译,并且错误显示诸如 2017 年的语法更改在 2012 年无效。我如何告诉配置它以针对已安装的 VS2017 构建项目?

【问题讨论】:

  • 我们使用的是 DefaultTemplate11.1xaml。我读到有新版本会从新路径获取 MSBuild 版本,但我不知道从哪里获取这些新模板。
  • 构建模板在 TFS2017 中完全不同。您可能需要权衡解决此问题可能需要多长时间。升级会更容易。我最近完成了它,因为你在 2012 年,所以你必须升级到 2013 年,或者像我在 2017 年之前所做的 2015 年一样。我也必须稍微修改流程模板。
  • 那么TFS 2012不能直接到2017吗?我们没有意识到这一点。你知道为什么吗?我看到几个地方说可以修改 DefaultTemplate.11.xaml 以指向新的 MSBuild 版本,但我的文件中似乎不存在提到的部分。
  • 我必须编辑流程模板 XML 文件。使用 tfs2017 重新创建构建定义更容易

标签: c# .net tfs build


【解决方案1】:

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

以下是我为使 TFS 2012 构建 c# 6 语法而进行的更改的列表。在带有构建代理的机器上,安装 vs 2017 企业版,在安装设置页面上,确保选择 MS 构建

编辑构建定义并确保 MSBuild 参数为 /tv:15.0 /p:GenerateBuildInfoConfigFile=false /p:VisualStudioVersion=15.0

检查您的构建定义正在使用的模板,并通过转到源代码管理资源管理器并进入团队项目并在 BuildProcessTemplate 下进行修改,它应该有 .xaml 文件,双击它进行修改

应该有 2 个动作说 Run MSBuild for Project。您需要更改它们的两个工具路径属性以指向构建服务器上的 msbuild.exe 父文件夹。就我而言,构建服务器是 32 位机器,因此 Bin 文件夹的路径在 Program Files 旁边没有 (x86),您需要检查构建服务器以在此处输入正确的路径。 进行更改后,您需要保存 xaml 并签入。

【讨论】:

  • 嗨,@gavin,xaml 不是最适合搜索的,请你告诉它的结构是 ToolPath 变量的位置吗?
  • 搜索
  • 你们如何为 XAML 模板安装 GUI 工具?在 snafu 安装那个小工具之后,我一直遇到 snafu。哦,伙计,我想念 TFS 的电动工具。
【解决方案2】:

旧的 Visual Studio 版本将 msbuild 安装到 C:\Program Files (x86)\MSBuild\<version>\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的在此链接中的回答:How to get VS 2017 working with TFS 2017 XAML Builds


此外,XAML 构建在 TFS 2017 中已弃用,并且在 TFS 的下一版本(2018)中将不可用。 VSTS 已经不再支持它们。

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

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

Source

因为您要升级并使用 TFS2017。强烈建议您将构建转换为 vNext Build 以获取一些新技术和支持。更多请参考Why Should I Leave XAML Builds?

【讨论】:

  • 是的,我今天早上意识到了这一点。我读到了它。我想我只是要转移到新的构建平台。
  • 好主意 Sam,最佳做法是让应用程序在组织中保持相同的版本和 sp 级别。
猜你喜欢
  • 2013-05-11
  • 2016-12-21
  • 2017-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多