Bueno aquí pongo un resumen, traducido, de un artículo (también reducido) bastante interesante, de cómo configurar builds incrementales en las Team Builds de Team Foundation Server, lo cual es bastante interesante.
Por supuesto, partiremos de una Team Build ya existente, aquí podéis consultar como se crean nuevas Team Builds: How to: Create a New Build Type
Lo primero que tenemos que hacer es traernos el fichero TFSBuild.proj de la build que queramos configurar, a nuestro workspace (How to: Create a Workspace, How to: Get the Source for your Team Project), este fichero lo podemos encontrar en Source Control, en la rama del proyecto al que pertenezca la build, y en la carpeta $/MiProyectoTfs/TeamBuildTypes/NombredeBuild, una vez que nos hayamos traido la última versión del fichero, lo desbloqueamos para editarlo, este fichero es un Xml, con lo que la edición es bastante sencilla, y lo más cómodo es hacerlo desde el propio entorno de Visual Studio.
Y ahora veremos lo que hay que editar en el fichero:
- Cuando Team Build comienza la ejecución de una build, borra los ficheros y las fuentes que se ha traido de la última build al directorio de trabajo intermedio, en las builds incrementales estos ficheros los necesitamos, ya que más adelante forzaremos a obtener únicamente los ficheros que han cambiado, para cambiar esto, y que no borre los ficheros que ya existen, especificaremos la propiedad SkipClean a true.
- También, en el inicio de la build, el Workspace usado por TeamBuild, se borra y se vuelve a crear, este paso también tenemos que saltarlo para poder conservar lo que ya teníamos en el WorkSpace, por tanto usaremos la propiedad SkipInitializeWorkspace y también la pondremos a true.
- Por último, lo que vamos a hacer es, no forzar a que se traiga la última versión de todos los ficheros, obteniendo únicamente los que se han modificado, esto se hace mediante la propiedad ForceGet, y en este caso la pondremos a false.
Todas estas propiedades las pondremos en un nuevo <ItemGroup> al final del fichero TFSBuild.proj, justo antes del cierre de </Project>, con lo que el final del fichero nos quedaría de este modo:
</ItemGroup>
<PropertyGroup>
<SkipClean>true</SkipClean>
<SkipInitializeWorkspace>true</SkipInitializeWorkspace>
<ForceGet>false</ForceGet>
</PropertyGroup>
</Project>
Bueno con esto quedaría configurada nuestra build para que sea incremental, como ya comentaba al principio, para hacer esto, necesitamos tener permisos en Source Control para modificar ese fichero y también tenemos que tener permisos de Administer a build y Administer workspaces (Team Foundation Server Permissions).
También os dejo aquí la Url original del artículo en inglés: How to: Configure Team Foundation Build for an Incremental Build
Espero que os haya sido de ayuda J.
2d0f4f58-4c29-419f-b8db-9c7867bd738a|1|5.0