1

这涉及到我如何定义 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="DEVBUILDSERVER_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="DEVBUILDSERVER2_30" 获取 C:\Users\DEVBUILDSERVER\AppData\Local\Temp\Matrix5Branches....等

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

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

4

1 回答 1

3

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

有两种选择:

  1. 更改 TEMP 环境变量
  2. 更改构建代理上的工作目录设置
于 2013-04-05T13:54:55.450 回答