TFS2018 VSTS 生成在 _builds中创建新的编号文件夹

TFS2018 VSTS builds creating new numbered folders in _builds

提问人:Andrew Northcote 提问时间:8/1/2023 最后编辑:Daniel MannAndrew Northcote 更新时间:8/2/2023 访问量:20

问:

我们正在从TFS2013升级到TFS2018。我决定在 VSTS(本地)中重新创建 XAML 生成定义。

一切进展顺利,我能够根据需要复制所有现有步骤。

我们的代理使用 c:\Agent\Builds 安装到 c:\Agent。但是,我从一个定义开始,使用 MSBuild,这创建了一个子文件夹 c:\Agents\Builds\1,其中包含预期的 a、b 和 s 文件夹。一切都很好。

然后,我克隆了这个版本来创建我的下一个版本,修改了所需的属性。这就是我遇到问题的地方。

新版本创建了一个新的子文件夹 c:\Agent\Builds\2!

在 TFS2013 XAML 生成中,“1”文件夹指定了生成控制器编号。使用 VSTS,我只有 1 个生成代理,因此我希望将“1”文件夹重新用于所有生成定义。我对构建文件夹的所有引用都是通过 $(build.sourcesDirectory) 进行的。我的工作区映射使用 $(build.sourcesDirectory)$(build.sourcesDirectory) 作为本地路径,因此每个构建都使用单独的子文件夹。$(build.sourcesDirectory) 似乎包含编号的文件夹。

我该怎么做才能使我的所有生成定义都在同一子文件夹中创建?

我已经浏览了所有属性,甚至将定义导出为 json,以在源代码中查找对编号文件夹的引用。

TFSBUILD的TFS-2018

评论

0赞 Jonathan Dodds 8/2/2023
代理处理的每个生成定义都有自己的文件夹。每个生成定义可能使用完全不同的存储库和工具。根据设计,生成定义是分开的。(我记得旧的 XAML 生成系统也分离了生成定义。为什么希望不同的生成定义共享同一文件夹?
0赞 Daniel Mann 8/2/2023
代理具有单独的工作区。这是故意的,无法更改。在你建议的共享方案中,如果在两个不同的代理上为两个不同的分支同时运行两个生成,会发生什么情况?好吧,将要发生的情况是两者都将失败,因为它们正在尝试读取和写入另一个代理正在使用的文件。
0赞 Andrew Northcote 8/2/2023
感谢您的输入。好的,我知道构建需要单独的工作区来构建以满足多个构建。我尝试将我的工作区映射到 $(Build.DefinitionName)($(build.sourcesDirectory)下的本地路径),认为“1”文件夹是构建控制器。如果是这样的话,那么我想我无能为力。您是否知道一种方法可以将编号文件夹的名称更改为更易于识别的名称?

答: 暂无答案