【问题标题】:How to build to same folder each time如何每次都构建到同一个文件夹
【发布时间】:2017-11-17 06:14:23
【问题描述】:

在 TFS 中,内部版本号格式通常如下所示:

$(BuildDefinitionName)_$(Date:yyyyMMdd)$(Rev:.r)

但是,我只想保留 1 个构建,并且我希望它每次都构建到同一个文件夹中。所以我试着把它改成这样:

$(BuildDefinitionName)

但问题是这只能工作一次,然后给出一个错误,即内部版本号已经存在。我想构建到同一个文件夹,这样我就可以编写一个脚本来压缩最新的构建,将它移动到另一个地方,然后解压缩它,如果我不必处理编写代码会容易得多找出最近的文件夹名称是什么。

有没有办法完成构建到一个不会改变的文件夹名称?

【问题讨论】:

  • 嗨 BVemon,关于这个问题的任何更新?我的回复是否有帮助或给出了正确的方向?

标签: visual-studio-2013 tfsbuild


【解决方案1】:

这是设计使然,每个完成的构建都应该有一个唯一的构建号/名称。否则会出现上述错误。

$(Rev:.r)

使用 $(Rev:.rr) 确保每个完成的构建都有一个唯一的 名称。 构建完成时,如果构建号中没有其他内容 已更改,Rev 整数值加一。

作为一种解决方法:对于 vNext 构建,您可以在构建管道期间使用 copy Files 任务将构建输出复制到同一文件夹。为确保您始终只获得最新版本,您可以在复制任务之前添加powershell script 以清理/删除该特殊目标文件夹中的文件。

对于 XAML 构建,您需要自定义构建模板并在构建模板中添加默认的 CopyDirectory 活动,以将构建结果复制到指定的放置位置。详细步骤请参考此博客。还要添加一个预构建脚本来执行清理操作。

【讨论】:

  • 嗯...不能说我熟悉 vNext 或 XAML 构建,除非这是我通过 Visual Studio 中的团队资源管理器选项卡创建的构建的基础,而我只是不意识到了吗?
  • @BVernon 您使用的详细 TFS 版本是什么? TFS2015 或 2013 或 2017?你是在 web 中还是在 VS 中创建的?
  • 糟糕,在我添加了 visual-studio-2013 标签后没想到要添加 tfs2013 标签,但我现在已经添加了。我从 Visual Studio IDE 中创建了构建。
  • @BVernon 您正在使用旧的 XAML 版本。您可以自定义构建模板并在构建模板中添加默认的 CopyDirectory 活动,以将构建结果复制到指定的固定放置位置。详细步骤示例请参考以下链接中的博客:blog.ehn.nu/2010/09/…
猜你喜欢
  • 1970-01-01
  • 2023-02-08
  • 2017-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-27
  • 1970-01-01
相关资源
最近更新 更多