1

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

在此处输入图像描述

问题是我希望它在有人签入BuildsInstall文件夹时触发构建,但Includes文件夹只是一些库和它需要的其他项目。当这些库被更改时,我不希望它重新运行。但是我需要在这里设置它们以确保它们被复制到构建放置服务器。当有人签入此文件夹时,有没有办法在不强制构建触发器的情况下复制此Includes文件夹?

4

3 回答 3

1

***_NO_CI***在签入到 Includes 目录时使用特殊关键字。

有关更多详细信息,请参阅此帖子。

于 2015-02-23T16:58:54.253 回答
1

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

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

于 2015-02-23T16:26:10.510 回答
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%
于 2015-02-23T21:24:37.520 回答