【问题标题】:TFS 2015 build server ignoring agent working dirTFS 2015 构建服务器忽略代理工作目录
【发布时间】:2016-07-01 10:59:39
【问题描述】:

我最近为 TFS 2015 设置了一个新的构建服务器。在构建代理属性上,工作目录最初设置为 $(SystemDrive)\$(buildnum)\etc 对于所有构建代理,我将其更改为硬编码为 E:\。

但它仍然会尝试检查 C:\下的代码

我查看了构建定义、构建模板和 config.xml,发现在任何地方都没有对 c:\ 或 $(SystemDrive) 的引用。

为什么它忽略了工作目录,我怎样才能让它在 E:\

下构建

编辑 ------

好的,现在我已经稍微了解了它,我认为正在发生的事情是它首先将源代码复制到 C: 然后将其移动到 E: 以实际运行构建。基于 $(SourceDir) 和 BuildAgent 工作目录。话虽如此,我不知道如何配置 $(SourceDir) 值以将其指向 E:\

我们在 C: 上没有足够的空间来拉下多个项目文件夹,然后再将它们复制到 E:

【问题讨论】:

  • 更改后是否重新启动了构建代理控制器?
  • 是的,然后我重新启动了整个服务器。仍然在 C:\ 中构建
  • 如果你使用 TFS Sidekicks,它是否仍然显示映射到旧路径的工作空间?
  • 在您提到之前,我从未听说过该应用程序。我安装它来尝试,但是当我尝试运行它时它崩溃了。操作系统是 windows server 2012。我开始查看 Visual Studio 中的工作空间,我检查的每个人都指向 E:\,但它们都是旧的 tfs 服务器,可能需要删除。实际上有数百个。
  • 您安装了正确的版本吗?你需要版本 6,它也不需要安装在服务器上(我在我的机器上本地运行它)这是一个了不起的工具,我一直用它来查看工作区,它也非常适合撤消结帐。

标签: tfs tfsbuild tfs-2015


【解决方案1】:

好吧,我想通了。构建日志说他们正在获取工作区。当我将它所花费的时间与之前的成功构建进行比较时,我注意到所花费的时间存在很大差异。在这一点上,我开始寻找应该被拉下来却找不到的文件。所以我开始寻找所有空间的去向。实际发生的是数据库拒绝连接并用 sql 转储填充驱动器。

感谢大家的建议。

编辑 - 运行 SQL Server 的服务包和累积更新后,错误消失了。 TFS 现在建立在适当的驱动器上,主系统驱动器不再填充 SQL 转储文件。

【讨论】:

    【解决方案2】:

    刚刚将我的构建代理工作目录从$(SystemDrive)\Builds\$(BuildAgentId)\$(BuildDefinitionPath) 更改为E:\Builds\$(BuildAgentId)\$(BuildDefinitionPath),然后将构建排队,构建代理从 TFS 获取源到我的 E: 驱动程序。没有发生任何问题。

    您可以尝试清理 TFS AT 机器上的缓存文件:C:\TfsData\ApplicationTier\_fileCache

    【讨论】:

    • 所以它位于我机器上的不同路径。我摆脱了它并重新启动了构建服务。然后我开始了2份工作。两者看起来都将源代码克隆到 C:\ 而不是 E:\,因为我可以看到 C:\ 上的可用空间迅速消失,而 E:\ 仍然有大量可用空间,而且似乎没有改变。
    • $(SourceDir) 的值是您在构建代理属性上配置到工作目录设置的值。在我的示例中,$(SourceDir) 是“E:\Builds\6\TeamProject\BuildDefinition”。如果您删除 C 驱动程序上的原始工作目录,您只会看到 C 驱动程序上不再创建任何 Builds 文件夹。另外,检查诊断日志,在“从 Team Foundation 版本控制获取源代码”下,您会看到源代码获取到 E 驱动程序,而不是 C 驱动程序。
    猜你喜欢
    • 1970-01-01
    • 2017-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    • 2017-03-21
    • 2018-06-19
    • 2012-02-01
    相关资源
    最近更新 更多