需要TFS Build在签入时将文档文件复制到网络共享(但是没有构建的sln) - 比如VSS阴影

时间:2013-07-09 12:42:11

标签: tfs tfsbuild tfs2012

首先,这里有一些背景知识&我想要实现的目标:

在我在TFS中的应用程序的主干中,有包含大量文档(Word文件等)的文件夹树 - 用户手册,技术规范等。在发布版本时,整个主干是分支的(因此两者的状态都是应用程序和文档在发布时捕获)。文档文件夹树是故意在包含VS解决方案的各种文件夹之外;这些文件由不一定拥有Visual Studio的各种人员更新。它看起来像这样:

    • 核心
    • 文档
    • UI
    • 报告
  • 唱片集
    • 1.0.0
      • 核心
      • 文档
      • UI
      • 报告
    • 1.1.0
      • 核心
      • 文档
      • UI
      • 报告

每次签入任何Documentation文件夹下的文件时,我都希望将该文件复制到文件共享上的等效文件夹中。在创建发布分支时,我还希望将整个Documentation文件夹复制到文件共享上的等效文件夹中。例如:

    • 文档---------> \ DOC-服务器\文档\主
  • 唱片集
    • 1.0.0
      • 文档---------> \ DOC-服务器\文档\ 1.0.0
    • 1.1.0
      • 文档---------> \ DOC-服务器\文档\ 1.1.0

此部署必须由TFS服务器完成,并由签入/分支触发 - 在编辑文档时,它们不在任何VS解决方案中,因此没有构建。

我读过的关于TFS Build的所有内容都表明必须有一个解决方案可以构建来触发部署。我正在寻找的是类似VSS的“阴影”功能,服务器会自动将所选项目文件夹复制到文件系统。

有什么办法可以实现吗?

1 个答案:

答案 0 :(得分:2)

您可以创建一个虚拟解决方案,以便通过构建定义获取它要求构建部分的解决方案。您可以创建一个虚拟/空白解决方案文件,如新项目 - >其他项目类型 - > Visual Studio解决方案 - >空白解决方案在构建定义中使用该SLN文件。

然后编辑默认构建模板并添加CopyDirectory和InvokeProcess活动以执行您要执行的其他复制工作(到共享)。如果要复制整个目录,可以使用CopyDirectory活动,或者如果要复制特定的文件扩展名等,可以使用InvokeProcess活动。

CopyDirectory很简单,您只需添加源位置和目标位置,就可以了。对于InvokeProcess,您可以输入“FileName = xcopy.exe”并填写正确的参数。

在签入期间触发此构建定义很简单(转到构建定义中的“触发器”选项卡,然后选择“连续集成 - 构建每个签入”)。但我不确定如何在分支发生时触发构建。

这是非常直接的,如果您需要帮助,请告诉我。