Yo uso TeamCity que a su vez invoca msbuild (.NET 4). Tengo un problema extraño porque después de que se completa 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.
Esto sucede casi siempre.
Estoy realmente perdido en esto, así que intentaré proporcionar tantos detalles como sea posible.
- El servidor es un Intel Core i7, 2 GB de RAM, con Windows Server 2008 estándar SP2 de 64 bits.
- En TeamCity, el corredor de msbuild se configura con el
/m
parámetro de línea de comandos (lo que significa usar múltiples núcleos) - El archivo en cuestión es SIEMPRE la misma DLL externa a la que se hace referencia en uno de los proyectos .NET, en la ruta
External Tools\Telerik\Telerik.Reporting.Dll
. (Hay varios otros archivos .DLL incluidos en elExternal Tools
directorio en una estructura de ruta similar que nunca causan este problema). Actualmente esto es con la versión de prueba de los informes de Telerik, en caso de que eso haga alguna diferencia. - Cuando ocurre el problema, siempre hay varios
msbuild.exe *32
procesos enumerados en el Administrador de tareas: Creo que hay 7. Al usar Process Explorer, todos parecen procesos de nivel superior (sin padres). Todos usan desde 20-50 MB de RAM y 0.0% de CPU. - Si espero de 1 a 3 minutos, los procesos de msbuild.exe se cierran por sí solos y TeamCity puede actualizar el directorio de trabajo correctamente.
- Si finalizo manualmente los procesos de msbuild, la actualización de TeamCity volverá a funcionar de inmediato.
- Los servicios de indexación están desactivados en Windows (aunque los dos puntos anteriores confirman prácticamente 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 se ha encontrado con esto antes?
/m /nr:false
, ejecutaré algunas compilaciones y veré cómo va. GraciasPara deshabilitar la reutilización de nodos dentro de Visual Studio, debe usar una variable de entorno:
fuente