【问题标题】:Team Foundation Build Service building in wrong location - VS2008 Team SystemTeam Foundation Build Service 构建在错误的位置 - VS2008 Team System
【发布时间】:2013-04-05 21:54:55
【问题描述】:

这涉及到我如何定义 TFS 构建代理在构建之前/构建时将源代码拉到哪里。

我们正在一个速度更快的新 Win7x64 Pro 服务器上重建我们过时和缓慢的 WinXP 构建服务器。所有软件都已安装,并且现有的构建定义使用新的构建代理定义成功启动。新旧构建代理之间唯一明显的区别是代理名称和目标服务器名称:构建被定义为放置在每台服务器上的同一共享中 (\\servername\builds),并且每个构建代理都定义了构建位置作为 $(Temp)\$(BuildDefinitionPath)。我们已经注意在新机器上重新创建与旧机器完全相同的构建位置文件夹结构。两种构建服务都在同一个帐户 (\DevBuildServer) 下运行,但通常在不登录 Windows 的情况下运行构建。

但是有一个障碍:使用相同的构建定义,旧的构建代理正确地将源代码获取到所需的目标位置(旧服务器上的 d:\temp),但是新的构建代理把它全部弄错了新服务器上的驱动器和路径。

来自日志:

旧版本代理: 获取 TeamFoundationServerUrl="http://devserver2:8080/" BuildUri="vstfs:///Build/Build/3437" Force=True Overwrite=False PopulateOutput=False Preview=False Recursive=True Version="C6165" Workspace="开发服务器_25" 获取 d:\Temp\Matrix5Branches\Matrix5313\Sources....等

新的构建代理: 获取 TeamFoundationServerUrl="http://devserver2:8080/" BuildUri="vstfs:///Build/Build/3459" Force=True Overwrite=False PopulateOutput=False Preview=False Recursive=True Version="C6176" Workspace="开发服务器2_30" 获取 C:\Users\DEVBUILDSERVER\AppData\Local\Temp\Matrix5Branches....等

问题是在新服务器上目标路径太长,所以构建失败。此外,我们需要将构建本身放在单独的驱动器上,这样它们就不会被备份。所以在新的构建服务器上,我需要将源代码的目标路径设置为 d:\temp。我的问题是:构建目标文件夹(即构建完成的位置)的位置/路径如何/在哪里设置?我已经尝试从头开始创建一个新的构建代理定义和一个新的构建,但我找不到任何定义它的地方,但显然它在某个地方,因为构建旧构建服务器的人已经管理了它。

TIA - 如果我今天解决了这个问题,我可以期待一个轻松的周末......

【问题讨论】:

  • 如果您使用与旧机器上相同的 TFSBuild.proj 文件,则这些文件在顶部有一些机器/路径名称等编码。如果你还没有,你可能想看看那里。
  • 在 TFSBuild.proj 文件中定义的唯一路径被注释为与 V1 向后兼容(我们比这更晚)。同步它们并不能解决问题。

标签: tfsbuild


【解决方案1】:

问题在于在 Build Agent Properties 的 Working Directory 中使用 $(Temp)。这使用 TEMP 环境变量,在 Windows 7 上默认为 %SystemDrive%\Users{username}\AppData\Local\Temp

有两种选择:

  1. 更改 TEMP 环境变量
  2. 更改构建代理的工作目录设置

【讨论】:

  • 谢谢。我已经尝试 (1) 通过更改服务帐户 (DevBuildServer) 的 env 变量,或者 (2) 在构建代理定义中进行更改,但在这两种情况下,它现在都失败并出现找不到路径错误:TF215085: 发生错误连接到代理时 ...:找不到路径的一部分 'C:\Windows\system32\d;\temp\tmp9ameu.tmp' 谢谢。我已经尝试 (1) 通过更改服务帐户 (DevBuildServer) 的 env 变量,或者 (2) 在构建代理定义中更改,但在这两种情况下,它现在都失败并出现找不到路径错误:
  • 我应该补充一点,构建服务器上的环境变量 TEMP 不包含';'
  • 在启动构建的机器上重新启动 Visual Studio,解决了文件路径问题。
猜你喜欢
  • 1970-01-01
  • 2013-01-30
  • 2012-04-28
  • 2012-04-17
  • 1970-01-01
  • 2015-01-18
  • 1970-01-01
  • 1970-01-01
  • 2016-12-14
相关资源
最近更新 更多