创建一个构建过程模板,它只会将所有文件复制到另一个目录

时间:2014-07-03 21:10:02

标签: visual-studio tfs tfs2010 tfs2012 tfsbuild

我想在TFS 2012 Express中创建一个Build Definition,它只是将项目源代码树中的所有文件复制到我的驱动器上的另一个文件夹中。只是为了强调 - 我不希望构建输出转到另一个目录 - 我希望源文件本身。原因是我有IIS指向特定文件夹,我希望构建将最新的asp和aspx文件复制到IIS托管文件夹。

我不确定这样做的复杂性,我确实找到了http://toadcode.blogspot.co.uk/2008/06/copy-multiple-files-via-tfs-build.html这样的文章,但我只需要一个更直接的清单,列出我需要做些什么来理解这个领域。

基本上 - 当构建排队时,我想要的只是将我的项目源文件复制到另一个目录:)。我认为这可以通过编辑一些Build.xml文件来完成......但是在制作构建定义时,我似乎无法自由地做我想做的事情!

我想我想要改变我的DefaultTemplate.11.1.xaml文件来改变构建过程,这会让我在构建过程完成后运行这个/或批处理文件?

我的TFS构建过程编辑屏幕如下所示: tfs

3 个答案:

答案 0 :(得分:2)

使用此post作为如何开始编辑TFS构建模板(或Wrox TFS 2012书籍)的指南,您需要进行以下更改:

  • 找到“复制到删除文件夹”活动:

Copy to Drop Location

  • 拖入" CopyDirectory" "删除文件以删除位置" (来自Team Foundation Build Activities下的工具箱):

Copy Directory

  • 转到新活动的属性窗口,并按如下方式设置源和目标:
    • 目的地:Path.Combine(BuildDetail.DropLocation, "MyOutputFolder")
    • 来源:Path.Combine(SourcesDirectory, "MyFileFolder")

如果您没有将所有文件放在一个文件夹中,则可能需要重复此操作。

答案 1 :(得分:1)

几周前,我确实为TFS2010和2013(不幸的是,2012年)做了一些事情。基本上,您为构建定义的工作空间中的任何内容都会被推送到放置位置。

这是指向博客文章的链接,您可以在其中下载它们:

http://www.incyclesoftware.com/2014/06/deploying-uncompiled-resources-release-management/

为了记录,我强烈建议不要使用构建过程模板来部署软件。不要试图过度扩展构建......它的工作是从源代码控制中获取内容并编译/打包以进行部署。使用真正的版本管理解决方案来实际处理部署软件。

答案 2 :(得分:1)

将bat文件添加到源文件夹。在批处理文件中添加xcopy%1 *。* TargetLocation。 将调用流程活动添加到您的工作流程中,即将结束。调用bat文件并将其传递给SourcesDirectory。