Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tfs Team Foundation Server中的增量生成问题_Tfs_Msbuild_Tfsbuild - Fatal编程技术网

Tfs Team Foundation Server中的增量生成问题

Tfs Team Foundation Server中的增量生成问题,tfs,msbuild,tfsbuild,Tfs,Msbuild,Tfsbuild,当我们进行TFS构建时,是否可以更改构建输出,使输出仅限于更改,从而减少部署负载?例如: 当我构建解决方案时,我应该只获取更改的DLL,而不是所有(包括Microsoft和其他从未更改的第三方DLL) 在TFS 2015中配置CI解决方案,并取消选中清除选项,因为TFS 2015/2017始终提供所有文件-已更改和未更改,但我只需要更改。此技巧无法解决问题: 跟踪了其他几个消息来源 应用这些技巧来更新项目,从属性组定义下的几个设置(IncrementalBuild=True,Fo

当我们进行TFS构建时,是否可以更改构建输出,使输出仅限于更改,从而减少部署负载?例如:

  • 当我构建解决方案时,我应该只获取更改的DLL,而不是所有(包括Microsoft和其他从未更改的第三方DLL)
在TFS 2015中配置CI解决方案,并取消选中清除选项,因为TFS 2015/2017始终提供所有文件-已更改和未更改,但我只需要更改。此技巧无法解决问题:

跟踪了其他几个消息来源

应用这些技巧来更新项目,从属性组定义下的几个设置(
IncrementalBuild=True
ForceGet=False
skipInitializeWorksplace=True
SkipClean=True
)一直到TFSBuild.proj文件的末尾

但问题仍然存在,我们无法在build文件夹中仅生成已更改的二进制文件,始终存在所有文件


请帮助我实现所需的生成输出。

增量生成仅重建不依赖于已更改文件的程序集。但它会复制所有项目输出(依赖它的后续项目可能依赖于这些程序集和文件)

这会使增量构建速度更快,但它不会“只传递更改的文件”.它始终提供所有文件,无论这些文件是更改的还是未更改的。除此之外,您可以有多个代理,每个代理可以有多个工作文件夹,增量生成可以使用其中任何一个作为增量生成的基础,无法保证更改的文件在您以前的生成和当前生成之间一个

您必须自己实现此功能,因为它从来都不是MsBuild或TFS生成的一部分。它将涉及查询TFS以查找上次删除的文件夹,并在运行增量生成后执行比较。然后仅复制更改的文件和已删除文件的日志

PS:TFSBuild.proj类型的版本非常不受欢迎。它们已被TFS 2010中的XAML版本所超越,并被视为“遗留版本”从那时起,新的VSTS/Azure DevOps构建系统就超越了它们,该系统不推荐使用XAML构建。在旧版XAML工作流中执行TFSBuild.proj项目时,会忽略与源代码管理交互的大多数属性。相反,XAML代理会在传递con之前获取源代码trol到MsBuild。这些新的VSTS/Azure Devops构建任务现在也获得了对基于Git的源代码管理存储库的YAML支持