首先,这里有一些背景知识&我想要实现的目标:
在我在TFS中的应用程序的主干中,有包含大量文档(Word文件等)的文件夹树 - 用户手册,技术规范等。在发布版本时,整个主干是分支的(因此两者的状态都是应用程序和文档在发布时捕获)。文档文件夹树是故意在包含VS解决方案的各种文件夹之外;这些文件由不一定拥有Visual Studio的各种人员更新。它看起来像这样:
每次签入任何Documentation文件夹下的文件时,我都希望将该文件复制到文件共享上的等效文件夹中。在创建发布分支时,我还希望将整个Documentation文件夹复制到文件共享上的等效文件夹中。例如:
此部署必须由TFS服务器完成,并由签入/分支触发 - 在编辑文档时,它们不在任何VS解决方案中,因此没有构建。
我读过的关于TFS Build的所有内容都表明必须有一个解决方案可以构建来触发部署。我正在寻找的是类似VSS的“阴影”功能,服务器会自动将所选项目文件夹复制到文件系统。
有什么办法可以实现吗?
答案 0 :(得分:2)
您可以创建一个虚拟解决方案,以便通过构建定义获取它要求构建部分的解决方案。您可以创建一个虚拟/空白解决方案文件,如新项目 - >其他项目类型 - > Visual Studio解决方案 - >空白解决方案在构建定义中使用该SLN文件。
然后编辑默认构建模板并添加CopyDirectory和InvokeProcess活动以执行您要执行的其他复制工作(到共享)。如果要复制整个目录,可以使用CopyDirectory活动,或者如果要复制特定的文件扩展名等,可以使用InvokeProcess活动。
CopyDirectory很简单,您只需添加源位置和目标位置,就可以了。对于InvokeProcess,您可以输入“FileName = xcopy.exe”并填写正确的参数。
在签入期间触发此构建定义很简单(转到构建定义中的“触发器”选项卡,然后选择“连续集成 - 构建每个签入”)。但我不确定如何在分支发生时触发构建。
这是非常直接的,如果您需要帮助,请告诉我。