2010-09-01 71 views
1

使用Windows 2008 Server(即具有2个构建代理的构建服务器(TFS 2010)),如何配置使用相同帐户的这些代理以使用多个工作区(或阻止它使用多个工作区)具有相同的路径?TFS 2010多构建代理用户管理

目前,我看到的行为是IT使用相同的用户和相同的路径创建多个工作区。我必须手动删除重复的工作区。稍后的一些构建尝试会自动创建更多工作空间,然后无法构建,因为有多个具有相同路径的工作空间。再次,这是自动发生的,并且不得不每隔10分钟手动删除工作区,这不是一个答案。

谢谢。

编辑:卸载并重新安装TFS生成代理,这解决了这个问题。

回答

1

(我不完全确定这是否回答了问题,但是...)IIRC您可以为每个构建代理配置根工作文件夹。然后,他们可以在他们自己的工作空间中彼此并肩工作,而不会发生任何冲突。

+0

上述方法打破了我的参考路径,除非我使它们成为静态(没有模板),并且这不能解决多工作区问题。 2代理3+工作区(我不知道为什么它不断创建这些) – 2010-09-01 19:58:51

+0

@ user264892:我强烈建议对所有引用使用相对路径 - 绝对路径是一个杀手。 *在某些时候你会*遇到绝对路径的主要问题,并且你离开的时间越长,那个问题就会被解决。对我来说它工作得很好,所以我不在乎它使用多少个工作区。它使用3个工作区是否重要?通常,如果我发现自己在争取某些东西来获得自己的方式,我最终会发现我做错了什么。 – 2010-09-01 20:07:02

+0

那么,它使用3个工作区确实很重要。这就是TFS给我的错误。 TFS使用相同的路径创建多个工作区。再次,这是自动创建。我没有告诉它在我的构建服务器上为每个代理创建3个(现在是5个)工作空间。路径不是相对的,但似乎通过模板解析到相同的路径,然后我的构建失败,因为我的构建器用户现在已创建3个相同的工作空间。我可以阻止TFS自动创建工作区? – 2010-09-01 21:04:42

0

每个构建代理应该使用自己的工作目录。我在构建服务器上有多个构建代理,并且在设置时,对于工作空间我没有任何问题。

的默认生成代理工作目录是一样的东西:基于$(BuildAgentId)

$(SystemDrive)\Builds\$(BuildAgentId)\$(BuildDefinitionPath) 

所以应该有不同的文件夹。

+0

尝试此方法无法解析引用。由于项目本身正在为引用寻找“C:\ Assembles”,现在它们在$(SystemDrive)\ Builds \ $(BuildAgentId)\ $(BuildDefinitionPath)\ Assemblies中。 2小时谷歌没有解决问题的解决方案。 – 2010-09-01 21:06:46

+0

对于您的构建定义,在“工作区”选项卡下,是否引用了解决方案所需的所有库的位置? – LordHits 2010-09-01 21:18:09

+1

将“C:\”变为“.. \ .. \”(或者使路径相对所需的任何内容)将使您的问题消失。如果你不这样做,如果你尝试分支,决定你需要2个代码副本(比如在追赶一个棘手的bug时比较前后的比较),或者只是发现你真的需要将代码移动到D:或E:驱动器(例如,在我以前的公司,IT部门给我们9GB的C:分区。疯狂,但我们的代码必须继续D:因此)...你不能谷歌解决您的问题,因为每个人都使用相对路径。 – 2010-09-01 21:22:21