【问题标题】:How to stop TFS creating a new folder with each build如何停止 TFS 在每次构建时创建一个新文件夹
【发布时间】:2013-01-24 14:38:04
【问题描述】:

我在 TFS 2012 中有一个构建定义,它当前将构建拖放到网络共享上,该网络共享将用作网站根文件夹。

问题是它每次都根据版本号创建一个新文件夹。我想保留版本编号,但只需明确并一遍又一遍地部署到同一个文件夹,这样我就不必在 IIS 中更改任何内容。文件夹就像 -

  • Build20130123.1
  • Build20130123.2

每个都包含一个完整的部署。我只需要一个文件夹,每次构建都将所有内容都转储到其中。

【问题讨论】:

    标签: msbuild


    【解决方案1】:

    您尝试执行的操作与构建系统的直觉相悖,因为它不仅会将构建的工件放入该文件夹,而且当满足保留策略时,它会尝试删除这些工件。因此,如果您这样做,您需要将保留策略设置为始终保留,这样它就不会尝试删除该文件夹的内容。您最好在复制后添加手动复制到此静态文件夹,该文件夹不受保留策略的约束,因为它对此一无所知。但是,如果您希望在主序列中打开模板时,您会看到一个名为“更新放置位置”的子序列。里面有 3 个项目,中间的一个是 if 语句,如果 drop build 和 Build Reason 被触发,向下挖掘到 th​​en 边,你会发现一个序列,其中包含一个名为 Set Drop Location 的活动。右键单击其属性,您将看到路径字符串当前是如何组合在一起的,将此字符串调整为您想要的,然后此值将通过构建模板传播

    【讨论】:

    • 谢谢,我在构建定义中添加了一个步骤,从构建位置到 'copydirectory',效果很好。
    【解决方案2】:

    您可以使用 2012 sp1 中的新功能,该功能允许您将输出置于 TFS 源代码控制中,然后您只需手动运行 TFS GET 命令或通过更新的工作流调用来更新您网站的最新文件和二进制文件地点。下图中的选项 3。

    2012 MSDN-Select a Staging Location and Setting Up a Drop Folder

    【讨论】:

    • 谢谢@SoftwareCarpenter 这是 TFS 2012 SP1 还是 VS 2012 SP1,因为目前我的 Visual Studio 构建选项中没有此选项,我只有前两个单选按钮。
    • 链接也应该提供更多细节。
    • 谢谢你,我不得不选择下面的放置位置答案
    • 太棒了!如果您需要使用它,这只是另一种解决方案。只需确保您的 tfs 服务器正在运行 sp1。
    猜你喜欢
    • 1970-01-01
    • 2021-10-21
    • 1970-01-01
    • 2017-11-17
    • 1970-01-01
    • 2021-04-02
    • 2014-08-06
    • 2020-02-23
    • 1970-01-01
    相关资源
    最近更新 更多