构建变量在 TFS 中的发布中不起作用
Posted
技术标签:
【中文标题】构建变量在 TFS 中的发布中不起作用【英文标题】:Build Variable not Work in release in TFS 【发布时间】:2018-04-19 14:59:17 【问题描述】:我正在尝试在 TFS 中使用发布,我添加了一个“命令行”任务
要在工具中执行类似“python”的操作,我添加了一个“命令行”任务, 我的文件在 C:\agent1_work\23\s\virtualenvtfs2\Scripts\python
一切正常。但是,当我尝试将绝对路径替换为
"%BUILD_SOURCESDIRECTORY%\$(virtualenvtfs)\Scripts\python"
或
"$Build.SourcesDirectory\$(virtualenvtfs)\Scripts\python"
甚至改成
"$System.DefaultWorkingDirectory\$(virtualenvtfs)\Scripts\python"
因为找不到指定的路径而反复失败。
【问题讨论】:
你试过 $(Build.SourcesDirectory)\virtualenvtfs2\Scripts\python 你在发布时选择了什么神器? 我不使用工件,因为在构建中我没有使用 你解决了这个问题吗? 【参考方案1】:正如我在您的问题中看到的,您正尝试从构建源目录中读取变量在发布管道中,并且您必须采取与尝试不同的方式。
在发布管道中,您必须将构建添加为工件。
然后,您的构建将位于 $System.DefaultWorkingDirectory\build artifact name\your files 的目录中
如果没有在构建步骤中发布您的工件,您可以通过在构建定义中添加“Publish build artifacts”构建任务来实现。
【讨论】:
不,我没有在我想在发布中发布的构建中发布,而且“发布构建工件”任务在发布中也不起作用。在我的版本中,我将构建添加为人工制品,但如何定位在 C:\agent1_work\23\s ?? 这是因为发行版期望有一个现成的构建,它是使用构建而不是发行版构建的。所以你可以构建它,发布工件,然后使用准备好的/成功的构建并将它作为工件链接到发布。构建成功完成后,您可以在版本中使用持续部署来启动它。【参考方案2】:构建变量在发行版中不可用,因此您不能使用它。关于发布变量,参考这篇文章:Variables in Release Management。
正如 Rodrigo 所说,您可以通过 Publish Build Artifacts 任务发布必要的文件,然后将 build 关联到 release,之后,发布的文件(build artifact)将被下载到 System.DefaultWorkingDirectory(例如 C:\agent_work\r1\a)
【讨论】:
我要发布的文件会在发布中生成,在构建中该文件还不存在,有什么方法可以发布文件,我用任务“Windows机器复制文件”进行测试" 但它不起作用,它给了我错误错误 53 在发布期间发布文件需要什么要求?根据原帖,你要执行脚本文件,这个文件在哪里?是在另一台机器上吗?在此处提供详细要求。以上是关于构建变量在 TFS 中的发布中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
不同版本(16、15、14)的 TFS API dll 在单个项目中不起作用
TFS 2013 构建活动 GetLocalPath 不起作用
JSON stringify 中的变量在 Rest 请求中不起作用