Uso TeamCity que a su vez invoca msbuild (.NET 4). Tengo un problema extraño cuando termina una compilación (y no parece importar si fue una compilación exitosa o no), msbuild.exe permanece abierto y bloquea uno de los archivos, lo que significa que cada vez que TeamCity intenta para borrar su directorio de trabajo, falla y no puede continuar.msbuild.exe permaneciendo abierto, bloqueando archivos
Esto sucede casi todo el tiempo.
Estoy realmente perdido en esta, así que trataré de proporcionar tantos detalles como sea posible.
- El servidor es un Intel Core i7, 2 GB de RAM, con Windows Server 2008 estándar de 64 bits SP2.
- En TeamCity, el corredor msbuild está configurado con el parámetro
/m
de línea de comandos (que significa utilizar múltiples núcleos) - El archivo en cuestión es SIEMPRE la misma DLL externa que se hace referencia en una de .NET proyectos, en el camino
External Tools\Telerik\Telerik.Reporting.Dll
. (Hay varios otros archivos .DLL incluidos en el directorioExternal Tools
en una estructura de ruta similar que nunca causa este problema). Actualmente esto es con la versión de prueba de los informes de Telerik, en caso de que haya alguna diferencia. - Cuando ocurre un problema, siempre hay varios procesos
msbuild.exe *32
listados en el Administrador de tareas: creo que hay 7. Al usar Process Explorer, todos parecen procesos de nivel superior (sin padres). Todos están usando de 20-50MB de RAM, y 0.0% de CPU. - Si espero 1-3 minutos, los procesos de msbuild.exe salen por sí solos, y TeamCity puede actualizar el directorio de trabajo correctamente.
- Si finalizo manualmente los procesos de msbuild, la actualización de TeamCity funcionará de nuevo inmediatamente.
- Los servicios de indexación están desactivados en Windows (aunque los dos puntos anteriores prácticamente confirman que es msbuild.exe el que causa el problema).
- No hay propiedades especiales en Telerik.reporting.dll. La única propiedad de SVN es
svn:mime-type = application/octet-stream
¿Alguien ha topado con esto antes?
tiene sentido: no parece que suceda si elimino/m. Lo estoy intentando ahora con '/ m/nr: false', voy a ejecutar algunas compilaciones y ver cómo funciona. Gracias – gregmac
Han pasado un par de días, y decenas de compilaciones más tarde, y no ha vuelto a suceder, parece que ya está resuelto. Gracias – gregmac
¡Genial! Encantado de ayudar. – Brian