在固定位置删除构建

时间:2014-02-03 15:27:00

标签: tfs build

我有一个使用自定义构建流程模板定义的构建过程,我正在寻找一些关于如何解决我遇到的问题的建议。

构建过程(TFS 2012)用于构建驱动我们的负载测试的代码,并且我有一个单独的进程需要引用drop文件夹中的特定路径,以便它始终使用最新版本的加载测试代码。自动负载测试,非常标准的东西。

但是,我想知道是否有办法让TFS构建覆盖它在drop文件夹中找到的文件。现在我将它设置为放入一个非常特定的文件夹,而不是放置任何会在文件夹名称中更改的内容(没有内部版本号,日期等)。我们的想法是,依赖这些文件的自动化实用程序有一个固定的点可供查看。

但是,当我目前运行构建时,它会给我错误TF42064: The build number '<build>' already exists for build definition '<build>'.

目前,我将构建定义设置为仅保留最新版本,因为此过程专门针对这些自动化工具。我们还有其他构建过程,用于调试/故障排除/日志记录。有没有办法让构建定义每次都覆盖drop文件夹,还是我必须深入了解.XAML模板文件,让它删除它在构建之前找到的文件夹?

2 个答案:

答案 0 :(得分:2)

我接近这个要求的方式是从默认模板开始,让构建副本到正常的放置位置,这允许我以与所有其他构建相同的方式保留历史构建。

构建完成后,我通过扩展标准构建模板从标准放置位置复制到单个放置位置,在Check-In门控更改之前添加了活动。

所涉及的步骤如下:

  • 在SharedResourceScope中:
    • 删除统一放置位置
    • 创建统一投放位置
    • 复制目录(来源:BuildDetail.DropLocation)

答案 1 :(得分:0)

默认情况下,TFS Build使用唯一的构建名称/编号创建一个新文件夹,然后删除那里的文件。

如果要更改此行为以覆盖已知位置中的文件(而不是每次构建都创建新文件夹),则需要修改构建工作流/ XAML(如注释中提到的@Oswald)。

您可以阅读有关在CodePlex上的ALM Ranger构建指南中自定义TFS构建的信息:http://vsarbuildguide.codeplex.com/