【问题标题】:Need TFS Build that copies documentation files to network share on check-in (but there is no sln to build) - like VSS shadow需要在签入时将文档文件复制到网络共享的 TFS 构建(但没有要构建的 sln) - 像 VSS 影子
【发布时间】:2013-07-10 23:25:52
【问题描述】:

首先,这里有一些背景和我想要实现的总体目标:

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

  • 主要
    • 核心
    • 文档
    • 用户界面
    • 报告
  • 发布
    • 1.0.0
      • 核心
      • 文档
      • 用户界面
      • 报告
    • 1.1.0
      • 核心
      • 文档
      • 用户界面
      • 报告

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

  • 主要
    • 文档 ---------> \doc-server\docs\main
  • 发布
    • 1.0.0
      • 文档 ---------> \doc-server\docs\1.0.0
    • 1.1.0
      • 文档 ---------> \doc-server\docs\1.1.0

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

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

有什么方法可以实现吗?

【问题讨论】:

    标签: tfs tfsbuild


    【解决方案1】:

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

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

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

    在签入期间触发此构建定义很容易(转到构建定义中的触发选项卡并选择“持续集成 - 构建每个签入”)。但是我不确定在发生分支时如何触发构建。

    这很简单,如果您需要帮助,请告诉我。

    【讨论】:

    • Build.csproj 中有什么?他应该使用什么样的项目?他应该如何设置构建操作?
    • 忽略 build.csproj。您可以创建一个虚拟/空白解决方案文件,如新项目 -> 其他项目类型 -> Visual Studio 解决方案 -> 空白解决方案。在构建定义中使用该 SLN 文件。
    • 好的,那你能详细说明一下这两个添加的活动吗?
    • 我已经更新了上面的答案。感谢您提出的好问题!
    • 谢谢,但您仍然可以做得更好。我已经完成了构建过程的定制,但很多人没有。如果不是详细信息,也许您可​​以提供一些链接
    猜你喜欢
    • 1970-01-01
    • 2018-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-14
    • 2023-03-15
    • 1970-01-01
    相关资源
    最近更新 更多