TFS 2017仅构建复制更改的文件

时间:2018-03-14 01:13:21

标签: tfs tfsbuild tfs2017

设置一个小型ASP.Net Web应用程序,通过TFS 2017(Update 2)持续集成和部署来构建和发布。这一切似乎都运行良好,我检查了代码更改,并且更改出现在我们的测试服务器上。

但是,当我查看构建/发布日志时,它正在部署我的Web应用程序项目中的所有文件,就像它们是新文件一样。这包括没有改变的图像等。

我如何,a)将其限制为仅部署已更改的文件,或b)仅部署必要的Web应用程序文件?

以下是TFS中的构建和发布定义,以及构建和发布日志。

TFS 2017 Build Definition

TFS 2017 Release Definition

2018-03-13T21:46:56.8010920Z ##[section]Starting: Build
2018-03-13T21:46:56.8167174Z Current agent version: '2.117.2'
2018-03-13T21:46:57.5354799Z ##[section]Starting: Initialize Job
...

TFS 2017 Build Log

2018-03-13T07:49:31.8449259Z ##[section]Starting: Release
2018-03-13T07:49:31.8605444Z Current agent version: '2.117.2'
2018-03-13T07:49:32.6262832Z ##[section]Starting: Initialize Job
...

TFS 2017 Release Log

干杯 菲尔

1 个答案:

答案 0 :(得分:0)

使用Copy Files task,没有默认匹配模式过滤器只能复制更改的文件。

对于a),您可以尝试在版本定义中使用powershell脚本来满足您的要求。

  

删除所有文件(递归),其时间戳为<   (现在 - x分钟),以及之后的所有空目录。在这条路上   工件目录包含ONLY CHANGED文件(整个文件   结构(已更改的文件)保留)。现在发布只会提供   这些文件到目的地。

更多详细信息请参阅此类似问题:TFS 2017 - how build/deliver only changed files?

对于b),您可以尝试使用构建和部署模板,默认情况下,在MSBuild参数中,参数为:/p:OutDir="$(build.binariesdirectory)\\"

enter image description here

看一下这个问题:Build and Deploy a Web Application with TFS 2017 using Web Deploy Package