Tfs 多个构建如何共享一个工作区

Tfs 多个构建如何共享一个工作区,tfs,tfsbuild,Tfs,Tfsbuild,我们有4个构建在同一个构建服务器上执行。它们使用相同的源代码,但使用不同的参数。它每次从源代码管理下载8GB的版本。4个生成是否可以使用相同的工作区?您可以通过更改共享相同源代码的所有4个TFS生成定义中的以下设置,将代码下载位置设置为一个位置: 'Workspace' tab > 'Build Agent Folder' 这里的值默认为$(SourceDir)和 因此,默认情况下,它将根据BuildAgent和您正在尝试的相应构建进行更改 但是,如果将生成代理文件夹的值设置为本地路径(

我们有4个构建在同一个构建服务器上执行。它们使用相同的源代码,但使用不同的参数。它每次从源代码管理下载8GB的版本。4个生成是否可以使用相同的工作区?

您可以通过更改共享相同源代码的所有4个TFS生成定义中的以下设置,将代码下载位置设置为一个位置:

'Workspace' tab > 'Build Agent Folder'
这里的值默认为$(SourceDir)和

因此,默认情况下,它将根据BuildAgent和您正在尝试的相应构建进行更改

但是,如果将
生成代理文件夹的值设置为本地路径(在生成代理计算机中可用),如“C:\Builds\CurrentProject”或UNC路径,如“\10.10.41.42\Builds\CurrentProject”,则所有这4个生成都将下载到同一位置

在此之后,在下一节的
Parameters
选项卡中将新生成排队后:
1。基本>清理工作区
如果不想再次下载源代码,请选择
None
Outputs
,如果想下载源代码,请选择
All

我建议不要使用相同的工作区。每个工作区执行许多TFS操作(例如,清理操作)

每个构建定义都有源代码的完整副本,但您可以做一些事情来避免每次构建都下载8GB:

  • 设置您的工作区映射以下载所需的内容(即映射到
    $/Team/Solution/Project
    而不是映射到
    $/
  • 隐藏任何不需要下载的文件夹-我们有0.5GB的不需要的东西
  • 将生成定义的
    清理工作区
    参数设置为
    输出
    。然后它将只下载上一个构建和下一个构建之间的更改
  • 最后,您可以在构建服务器上设置TFS代理服务器,并缓存所有源代码
$(SourceDir) - Expands to $(BuildDir)\Sources by default
$(BuildDir) - Expands to BuildAgent.BuildDirectory