【问题标题】:Team Build TF10122 error when using $(BuildAgentId)使用 $(BuildAgentId) 时的 Team Build TF10122 错误
【发布时间】:2012-07-06 13:24:44
【问题描述】:

我正在尝试将此构建代理文件夹用于我的构建定义...

$(SystemDrive)\Builds\$(BuildAgentId)\VPB

...但我收到以下错误。

TF10122:路径“c:\Builds\$(BuildAgentId)\VPB”在 路径组件的开始。删除“$”并重试。

我需要包含一些东西来表示代理,因为我在构建服务器上有两个构建代理。

我试图保持路径简短,因为 InstallShield 的合并模块路径名称过长(子文件夹过多,并且在所有内容的末尾添加了 GUIDS)。

知道为什么这不起作用吗?

【问题讨论】:

  • 您是想在 TFS-Build 中使用它,还是在 MSbuild 中使用它?如果您是在 TFS 中执行此操作,您可以简单地使用变量 BuildDirectory 在构建过程中解析为“C:\Builds\123\VPB”
  • AFAIK,这仍然会导致工作区与多个构建代理发生冲突。
  • 不,它不应该 - 因为$(BuildAgentId) 在运行时被解析为实际 ID,而 TFSBuild 在 BuildDirectory 中保留它。

标签: msbuild build-automation tfsbuild


【解决方案1】:

确保您的构建定义和构建代理工作目录设置正确。

Setting up build agent working directory and build definition working directories

【讨论】:

  • 我可以调整代理中的路径以使用定义 ID,但我更感兴趣的是为什么这个变量不起作用。
  • 通过将您的代理设置为使用 $(SystemDrive)\$(BuildAgentId)\$(BuildDefinitionPath) 之类的路径,可以确保不会出现工作空间映射问题或其他构建映射到相同的位置。这就是为什么在构建定义工作空间中使用 $(sourcedir) 也很重要的原因。希望这会有所帮助。
  • 我想尝试使用构建代理 ID 变量仅在构建代理上有效?我找不到任何关于在哪里允许使用什么变量的明确文档。
  • 您可以使用两种类型的令牌目录令牌或环境变量。环境变量基于登录的用户帐户。例如,您已将 Team Foundation Build Service 配置为在名为 BuildSvcAcct 的帐户下运行。您将 $(HomeDrive)\Builds 指定为运行 Windows Server 2008 的构建机器上构建代理的工作目录。因此,构建代理通常将使用近似于以下内容的物理目录作为其工作目录位置:C:\Builds。 msdn.microsoft.com/en-us/library/bb399135.aspx
  • 问题的关键是我希望使用一个变量(在您刚刚链接的页面上列出,从“团队基础构建变量:您可以在构建代理中使用以下变量”部分开始工作目录...") 在 Build Definition--> Workspace --> Build Agent Folder 值中,但它不起作用。显然,这些变量不可用于构建代理属性对话框之外的任何其他构建代理模块。
猜你喜欢
  • 1970-01-01
  • 2016-12-14
  • 2012-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-23
  • 1970-01-01
相关资源
最近更新 更多