TFS2018本地VSTS构建重复创建编号文件夹问题求助
解决TFS 2018 XAML构建定义复用同一编号工作文件夹的问题
针对你遇到的TFS 2018 XAML构建定义生成独立编号工作文件夹的问题,可通过以下步骤实现所有定义复用同一编号文件夹:
1. 修改构建定义的工作区映射
- 进入TFS Web界面,打开目标构建定义的编辑页,切换到工作区标签
- 删除原有映射规则,重新添加源代码路径映射:
- 服务器路径:选择你的项目源代码根路径(如
$/YourTeamProject/Source) - 本地路径:直接指定固定编号的文件夹路径,比如
c:\Agent\Builds\1\$(BuildDefinitionName)——这样既共享Builds\1根目录,又通过构建定义名称区分各构建的子文件夹,避免文件冲突 - 若无需按定义名称隔离,可直接指定
c:\Agent\Builds\1(不推荐,多构建并行时易引发文件覆盖)
- 服务器路径:选择你的项目源代码根路径(如
2. 替换构建步骤中的路径引用
由于$(build.sourcesDirectory)默认包含自动生成的编号,需替换为自定义路径:
- 在构建定义的变量标签页,新增自定义变量
CustomSourcesRoot,赋值为c:\Agent\Builds\1 - 所有构建步骤(如MSBuild、复制文件等)中,将
$(build.sourcesDirectory)替换为$(CustomSourcesRoot)\$(BuildDefinitionName)(或根据你的目录结构调整)
3. 调整构建代理的工作区配置
打开代理安装目录下的c:\Agent\settings.json文件:
- 确保
enableWorkspaceCache字段设为true,允许代理复用工作区资源 - 保持
workFolder字段为Builds即可,无需修改,工作区的具体路径由构建定义的映射规则控制
4. 统一所有克隆的构建定义配置
对所有克隆后的构建定义重复上述步骤,确保它们的工作区映射指向同一个Builds\1目录下的对应子文件夹,这样所有构建都会生成在同一编号的根文件夹内。
关键说明
TFS 2018的XAML构建中,自动生成的编号文件夹是构建定义的唯一标识编号,而非TFS 2013中的构建控制器编号。要打破这一默认行为,必须手动指定固定的本地路径映射,不能依赖系统自动生成的$(build.sourcesDirectory)变量。
内容的提问来源于stack exchange,提问作者Andrew Northcote
相关产品推荐
相关产品推荐

