Team Foundation Build Service构建错误的位置 - VS2008 Team System

时间:2013-04-05 13:32:59

标签: tfsbuild tfs2008

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

我们正在一个更快的新Win7x64 Pro服务器上重建我们过时且缓慢的WinXP构建服务器。已安装所有软件,并使用新的构建代理程序定义成功启动现有构建定义。旧构建代理和新构建代理之间唯一可见的区别是代理名称和目标服务器名称:构建定义为放在每个服务器(\\ servername \ builds)上的相同共享中,并且每个构建代理定义构建位置as $(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 .... etc

新建代理商:  获取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 .... etc

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

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

1 个答案:

答案 0 :(得分:3)

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

有两种选择:

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