CruiseControl.net y svn checkout

Puedo hacer que cruisecontrol trabaje con svn. Lo que trato de hacer es que cuando cruisecontrol detecta un cambio en el repository, elimina todo dentro de mi directory de trabajo y luego revisa todo el proyecto nuevamente. No estoy seguro de cómo puedo hacer eso. Parece que cruisecontrol actualiza automáticamente el directory de trabajo cuando hay una actualización en el repository, pero no elimina los files adicionales (como el file bin) antes de actualizar el directory.

Gracias

En su file ccnet.config ¿su bloque de control de origen contiene el elemento cleanCopy? Para eliminar todo en el directory de trabajo, asegúrese de que cleanCopy esté configurado como "verdadero"

Espero que esto ayude.

No sé si SVN funciona de manera similar a TFS (tiene un caching, etc.), pero así es como lo hago con CC.NET y Sourcesafe:

En la sección de preconstrucción de mi proyecto, me aseguro de limpiar mi directory de trabajo, es decir: borro todo lo que hay dentro de él.
(Las tareas que se incluyen en la sección de preconstrucción se ejecutarán antes de que CC.NET obtenga la última versión de su proyecto fuera del control de origen).

Para lograr esto, invoco un objective que está definido en mi buildscript (msbuild) que se llama 'limpiar'.

Este objective elimina todos los files y directorys.

Esto es más o less como se ve la tarea en mi compilation de msbuild (de memory, no la tengo aquí):

<Task name="clean"> <ItemGroup> <FilesToDelete include="$(workingdir)\**\*.*" /> </ItemGroup> <ItemGroup> <DirectoriesToDelete include="$(workingdir)\**" /> </ItemGroup> <Delete Files="@(FilesToDelete)" /> <RemoveDir Directories="@(DirectoriesToDelete)" /> </Task> 

Luego, en la configuration del proyecto CC.NET, llamo al script MSBuild usando la tarea MSBuild, y llamo a este objective.

Lo que me gusta de esto, es que también puedo limpiar mi directory de trabajo en mi estación de trabajo; Solo tengo que llamar a este objective usando una llamada a msbuild en la command-line, y mi directory de trabajo está vacío. Tengo tareas similares para realizar un getlatest, build completo, etc. también.

Puede hacer que su script de compilation elimine el directory bin primero, luego compile el proyecto. Cree una tarea de creación llamada "clean" que elimine la carpeta de salida comstackda, luego configure la tarea "mainBuild" para que dependa de "clean". Es más fácil crear la tarea "limpia" si todo se comstack en una carpeta de salida común.

Ya sea que configure ccnet.config para limpiar su copy de trabajo o agregue una tarea de compilation para limpiar su copy de trabajo es una cuestión de preference.