我在 TFS 2012 中有一个构建定义,它当前将构建放到一个网络共享上,该共享将用作网站根文件夹。
问题是它每次都根据版本号创建一个新文件夹。我想保留版本编号,但只需明确并一遍又一遍地部署到同一个文件夹,这样我就不必在 IIS 中更改任何内容。文件夹就像 -
- 构建20130123.1
- 构建20130123.2
每个都包含一个完整的部署。我只需要一个文件夹,每次构建时都将所有内容都转储到其中。
我在 TFS 2012 中有一个构建定义,它当前将构建放到一个网络共享上,该共享将用作网站根文件夹。
问题是它每次都根据版本号创建一个新文件夹。我想保留版本编号,但只需明确并一遍又一遍地部署到同一个文件夹,这样我就不必在 IIS 中更改任何内容。文件夹就像 -
每个都包含一个完整的部署。我只需要一个文件夹,每次构建时都将所有内容都转储到其中。
您正在尝试做的是违反构建系统的直觉,因为它不仅会将构建的工件放入该文件夹中,而且当满足保留策略时,它会尝试删除这些工件。因此,如果您这样做,您需要将保留策略设置为始终保留,这样它就不会尝试删除此文件夹的内容。您最好在复制后添加手动复制到此静态文件夹,该文件夹不受保留策略的约束,因为它对此一无所知。但是,如果您希望在主序列中打开模板时,您会看到一个名为“更新放置位置”的子序列。有 3 项,中间一项是 if 语句,用于 if drop build 和 Build Reason 被触发,深入到 then 一侧,你会发现一个序列,其中包含一个名为 Set Drop Location 的活动。右键单击其属性,您将看到路径字符串当前是如何组合在一起的,将此字符串调整为您想要的,然后该值将通过构建模板传播
您可以使用 2012 sp1 中的新功能,让您将输出置于 TFS 源代码管理中,然后您只需手动运行 TFS GET 命令或通过更新的工作流调用来更新您网站位置的最新文件和二进制文件。下图中的选项 3。