首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在构建过程模板中获取AgentScope期间的TFS构建代理Id?

在构建过程模板中获取AgentScope期间的TFS构建代理Id?
EN

Stack Overflow用户
提问于 2013-10-03 16:18:20
回答 1查看 1.3K关注 0票数 0

我正在构建一个包含许多Web应用程序项目的代码库,并在构建过程中为构建存储生成webdeploy包。

由于NTFS中260个字符长度的路径限制,由于webdeploy在用于构建包的目录中生成一个重复的文件夹结构,使路径中用于文件夹的字符数翻了一番,我的构建失败了。对于包含项目名称和构建标签的构建工作区,这可能会变得相当长。

为了解决第一个问题,由于我的个人英雄Sayed Ibrahim Hashimi的提示,我使用_PackageTempDir=C:\TfsTmp\Pkg\重定向了包构建目录。这很有效,现在构建成功了。但是,这限制了每个构建代理的单个构建,因为所有代理都将尝试使用相同的硬编码路径。

为了解决这个问题,我想使用用于定义BuildAgentId工作区的$(BuildAgentId)变量,但是我不知道如何在构建过程模板中取消这个变量的引用。当我尝试时,我只会在构建服务器上出现文件夹结构,比如C:\TfsTmp$(BuildAgentId)\Pkg,或者C:\TfsTmp\$(BuildAgentId)\Pkg,或者类似的。

从BPT内部无法访问此变量吗?是否有更好的方法来区分这些文件夹?在构建webdeploy时,是否有更好的方法来解决我最初的问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-04 07:19:00

在“运行代理”范围内,BuildAgent信息应该是可访问的。看一看IBuildAgent和IBuildDetail,就能得到一个想法。

您可能可以从代理的URI中获取代理ID。我还没测试过,但这是个开始。

代码语言:javascript
复制
String agentId = LinkingUtilities.DecodeUri(buildAgent.Uri.AbsoluteUri).ToolSpecificId;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19164176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档