TFS构建中“Get Sources”选项控制及Workspace异常删除问题咨询
嘿,我来帮你梳理下TFS里「Get Sources」相关选项的查看/设置位置,顺便分析下你遇到的工作区删除差异问题~
查看/设置Get Sources选项的核心位置
不管是Build A、B还是C,只要进入构建任务的编辑模式,最顶部的第一个选项卡就是「Get Sources」——这里集中了所有和源代码拉取、工作区管理相关的核心配置:
- 你已经注意到的「Clean」设置,除了全局的true/false,还可以展开选择具体的清理范围(比如仅清理源码、清理源码+输出目录等),不过你说三个任务的Clean都设为false,所以这个不是触发工作区删除的原因。
- 重点看**「Delete workspace after build」选项**:这个复选框就是控制构建完成后是否自动执行
tf vc workspace /delete命令的关键!你可以分别检查Build A和C的这个选项是不是被勾选了,而Build B没勾选——这大概率就是你看到的差异原因。 - 除此之外,这里还有「Get version」(指定拉取的源码版本)、「Workspace」(配置工作区的命名规则和映射)等其他和源码获取相关的选项,都可以在这里调整。
排查工作区删除差异的额外关键点
因为你的任务是克隆后精简的,还要注意两个容易忽略的点:
- 克隆任务的配置继承问题:有时候克隆构建任务后,部分隐藏配置可能不会完全同步,或者你在精简Build B的时候,不小心取消了「Delete workspace after build」的勾选,而A和C保留了原设置。
- 自定义构建脚本的影响:你提到每次Build A都会执行
tf vc workspace /delete,除了Get Sources里的自动设置,还要检查三个任务的构建步骤列表——有没有手动添加的PowerShell/命令行步骤,专门执行了这个删除命令?如果Build A和C有这个步骤,而Build B被精简掉了,也会出现这种差异。
快速排查步骤
- 打开每个构建任务的编辑页面,直接点击顶部「Get Sources」标签,核对「Delete workspace after build」的勾选状态。
- 遍历三个任务的所有构建步骤,确认是否存在自定义脚本执行
tf vc workspace /delete命令。 - 如果你用的是较旧版本的TFS(比如2017及以前),可以顺便检查「Agent Job」的高级设置里,是否有和工作区相关的配置(不过大部分新版本都统一放在Get Sources里了)。
内容的提问来源于stack exchange,提问作者MitchelWB
相关产品推荐
相关产品推荐

