阻止TFS构建定义源设置触发构建

时间:2015-02-23 14:14:14

标签: tfs msbuild tfsbuild build-server build-definition

当我创建构建定义时,我设置了一些源设置,例如:

enter image description here

问题是当有人检查构建安装文件夹时,我希望它触发构建,但包含文件夹只是一些图书馆和它需要的其他项目。当这些库被更改时,我不希望它重新运行。但是我需要在这里设置它们以确保它们被复制到Build drop服务器。有没有办法复制这个包含文件夹,而无需在有人签入此文件夹时强制构建触发器?

3 个答案:

答案 0 :(得分:1)

没有简单的方法可以做到这一点。正如您所发现的那样,源设置具有双重功能,它们定义了构建所需的文件集,这些文件是触发CI的文件集。

我认为这不是问题,如果在您的构建中使用了包含,那么我想在更改时启动新版本,以确保更改不会破坏任何内容构建过程。

答案 1 :(得分:1)

要做到这一点,有两件事要做。

首先,您需要将源文件夹放入以构建为中心的布局中,这将有助于消除尽可能多的重叠。

如果您需要一个不应该触发构建的特定共享文件夹,那么请不要将其包含在源映射中,而是添加一个脚本以将文件下载到您的工作区,作为早期的一部分。建立。

该示例需要更新您的visual studio版本,您应该将源目录传递给脚本。

   REM %1 represents the Sources directory
   REM Compute variables
   SET TfExe="%ProgramFiles(x86)%\Microsoft Visual Studio 10.0\Common7\IDE\TF.exe"
   REM SET TfExe="C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\TF.exe"
   Set RefPath="$/TFS BUILDS/Shapes/Main/Includes"
   Set localPath="%~1\Includes"

   REM set the Drive Letter for this build
   Set Localdrive=%localPath:~1,2%
   %Localdrive%
   cd %1

   REM Map the folders 
   %TfExe% workfold /map %RefPath% %localPath%

   REM Get the required content
   %TfExe% get %RefPath%

   REM Unmap the folders 
   %TfExe% workfold /unmap %RefPath%

答案 2 :(得分:0)

在签入时使用特殊关键字***_NO_CI***进入包含目录。

See this post for further details.