Msbuild 如何停止TFS在每次生成时创建新文件夹

Msbuild 如何停止TFS在每次生成时创建新文件夹,msbuild,Msbuild,我在TFS 2012中有一个构建定义,它当前正在将构建放到一个网络共享上,该网络共享将用作网站根文件夹 问题是它每次都会根据版本号创建一个新文件夹。我希望保留版本编号,但只需将其弄清楚并反复部署到同一文件夹,这样我就不必在IIS中更改任何内容。文件夹就像- Build20130123.1 Build20130123.2 每个都包含一个完整的部署。我只需要一个文件夹,每个版本都可以将所有内容转储到其中 您可以使用2012 sp1中的新功能,将输出放在TFS源代码管理中,然后只需手动运行TFS

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

问题是它每次都会根据版本号创建一个新文件夹。我希望保留版本编号,但只需将其弄清楚并反复部署到同一文件夹,这样我就不必在IIS中更改任何内容。文件夹就像-

  • Build20130123.1
  • Build20130123.2

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

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


您尝试执行的操作与构建系统的直觉相反,因为它不仅会将构建的构件放到该文件夹中,而且当满足保留策略时,它还会尝试将这些构件删除回去。因此,如果执行此操作,则需要将保留策略设置为“始终保留”,以便它不会尝试删除此文件夹的内容。最好在复制到删除步骤之后添加一个手动副本到此静态文件夹,该文件夹不受保留策略的约束,因为它对此一无所知。但是如果您愿意,当您在主序列中打开模板时,您将看到一个名为updatedroplocation的子序列。其中有3项,中间一项是If语句,用于指示是否触发了drop build和build Reason,深入到then端,您将发现一个序列,其中包含一个名为Set drop Location的活动。右键单击其属性,您将看到路径字符串当前是如何组合在一起的,根据您的意愿调整此字符串,然后此值将通过构建模板传播出去

谢谢@SoftwareCarpenter这是TFS 2012 SP1还是VS 2012 SP1,因为我目前在visual studio构建选项中没有此选项,我只有最上面的两个单选按钮。链接也应该提供更多细节。谢谢你,我必须在下面找到放置位置的答案!如果你需要的话,这只是另一个解决方案。请确保tfs服务器正在运行sp1。谢谢,我在生成定义中添加了一个步骤,从生成位置到“copydirectory”,效果不错。