2011-06-01 25 views
5

Estoy trabajando en una solución C# bastante simple con dos proyectos: una biblioteca de clase y un instalador para la biblioteca. La construcción de la biblioteca de clases en sí misma toma alrededor de un segundo. Construir el instalador, sin embargo, lleva un tiempo impredecible/increíblemente largo. Lo que es más interesante, la CPU parece estar "tomando descansos" durante la compilación, agregando un solo núcleo durante 5 a 10 segundos y luego golpeando cerca de 0 durante varios segundos.Construcción lenta inesperada del proyecto C# en VS 2010

El proyecto de instalación es bastante simple. Es solo el resultado de la biblioteca de la clase (una sola DLL, aproximadamente 2 MB) y algunas claves de registro.

¿Alguna idea de qué podría causar esto?

+0

¿Tiene la salida de compilación? – Iain

+0

¿Podría proporcionar el resultado del proceso de compilación? Difícil de adivinar sin más información. –

+0

Podría estar relacionado: http://connect.microsoft.com/VisualStudio/feedback/details/635358/visual-studio-deployment-projects-are-slow-to-build-and-dont-take-advantage-of-multiple -cpus – keyboardP

Respuesta

0

Después de retocar las cosas por un tiempo, descubrí que al cambiar la configuración de Registro a NO REGISTRAR para COM a favor de que la compilación DLL realice el registro, la compilación del instalador se volvió mucho más confiable (y más rápida). No estoy seguro de que esto constituya una solución, ya que el registro COM simplemente debería funcionar. Pero, al menos, he podido solucionar el problema.

0

Tuvimos este problema exacto y encontramos que el proceso de compilación msi crea archivos vsi * .tmp en la carpeta c: \ Documents and Settings \ username \ Local Settings \ Temp que no se limpian y se acumulan con el tiempo . Cuantos más archivos existan, más larga será la creación de msi. Solucionamos nuestro problema utilizando una tarea programada para eliminar cualquiera de esos archivos que tienen más de 24 horas.

Nota - para nuestra situación el servidor era Windows Server 2003 R2 - de ahí el prefijo c: \ Documents and Settings. Si está usando Windows Vista o Windows 7, probablemente encuentre los archivos buscando vsi * .tmp bajo c: \ Users \ username en su lugar.

0

Si alguien tropieza con esta pregunta en Google y ninguna de las otras soluciones parece resolver su problema y usted me gusta a mí mismo tenía su trabajo en una unidad usb ... no use la unidad usb. Aunque solo configura un espacio de trabajo en TFS y luego lo arrastra, no vale la pena. Simplemente cree otro espacio de trabajo en su disco local y solo use el usb cuando sea necesario.

Cuestiones relacionadas