2017-08-10 44 views
1

我正在使用TFS 2017,关于标题,我找到了一个术语:增量构建 - 但是,我无法找到设置它的位置。我尝试在'构建参数'(/ p:IncrementalBuild = true)中添加Incremental参数,但总是出现错误,说明这是错误的参数。 是否有可能交付(或建立和交付)仅更改的文件?TFS 2017 - 如何构建/交付仅更改的文件?

回答

1

让我们假设我是如何解决这个问题(如果任何人有类似的问题):

由于TFS 2017年总交付的所有文件 - 变与不变,但我只需要改变,我解决了这个为如下所示:

由于传输到Artifact的文件保留时间戳(未更改的文件具有last_edited时间戳,并且编辑的文件具有新的当前时间戳),我决定创建FIXED Artifact目录(不依赖于构建版本,但始终相同) 。然后我编写了PowerShell脚本(作为第一个发布步骤),它删除所有文件(递归),其时间戳为<(Now - x min),以及之后的所有空目录。 在这种方式下,工件目录包含只有已更改的文件(整个文件结构(已更改的文件)保留)。现在发布只会将这些文件发送到目的地。

干杯! :)

0

如果您想要增量构建。当您添加一个Visual Studio Build/MSBuild任务来构建项目时,只需取消选中即可。Clean选项。因此它会同步源文件,并且只能从第二次获取更改的文件来构建。有关详细信息,请参阅 Build task Arguments

Clean选项:如果您想使其成为增量构建,请设置为False。此设置可能会缩短您的编译时间,特别是如果您的代码库很大时,尤其如此。除非您还将Clean存储库设置为False,否则此选项没有实际的 效果。

如果您想重建代码项目中的所有代码,请将其设置为True。 这相当于MSBuild /target:clean argument

假设你想要的唯一更改的文件传送到特定的位置,你可以添加一个复制文件步骤修改过的文件复制到的位置。

enter image description here

+0

谢谢,Andy-MSFT!我现在会尝试。 –

+0

@ J.Ops您是否已通过解决方案解决了您的问题?任何更新? –

+0

Andy-MSFT,我没有按照您提供的方式解决此问题 - TFS始终提供所有文件 - 已更改并保持不变。我昨天晚上解决了这个问题,如下所示: 由于传输到工件的文件保留时间戳(未更改的文件具有last_edited时间戳,并且编辑的文件有新的当前时间戳),我决定创建FIXED Artifact目录(不依赖于构建版本,但始终相同)并编写PowerShell脚本,删除所有具有timestamp <(Now - x min)的文件(递归),然后删除所有空目录。 –