2010-10-14 30 views
12

Tengo VS 2008 Professional y un dispositivo inteligente .NET C# project. Tengo ~ 100 archivos de cs en total. La construcción lleva mucho tiempo, tengo que esperar al enlazador aprox. 1min (60s) cada vez que compilo el proyecto. Tengo Core i3, 4GB RAM, 7200rpm de disco.VS 2008 Profesional, Smart Device Proyecto .NET C# - construcción lenta

¿Qué causa esto y cómo puedo optimizar la compilación? ¿Alguna opción de Visual Studio?

+2

C# no utiliza un enlazador. Cambia el resultado de MSBuild a diagnóstico y pega los tiempos que ves en tu pregunta. Herramientas + Opciones, Proyecto y Soluciones, Construir y Ejecutar. –

Respuesta

19

Si sigue los consejos del comentario de Hans Passant y establece MSBuild como resultado de diagnóstico, obtendrá una imagen más clara de lo que se está tomando el tiempo. Si encuentra que su compilación está pendiente del compilador de licencias (LC.exe), esto podría deberse a que intenta llamar a un servidor y agotar el tiempo de espera. Puede resolver esto mediante la alteración de su machine.config -

editar C: \ Windows \ microsoft.net \ Framework \ v2.0.50727 \ config \ machine.config, y añadir la siguiente clave:

<configuration> 
    <runtime> 
     <generatePublisherEvidence enabled="false"/> 

EDITAR: //

Basado en el comentario a continuación hice un poco de excavación. La tarea de verificación de plataforma tiene un problema conocido en el que se ejecuta muy lentamente en VS2008. Más detalles sobre el mismo se puede encontrar aquí:

http://blogs.msdn.com/b/vsdteam/archive/2006/09/15/756400.aspx

Una forma de evitar esto es desactivar la tarea en sí en su construcción. Para ello

1) Abrir el archivo:

%windir%\Microsoft.NET\Framework\v2.0.50727\Microsoft.CompactFramework.Common.Targets 

para su edición.

2) Ir a la línea que dice:

Name="PlatformVerificationTask"> 

y cambiarlo a:

Name="PlatformVerificationTask" Condition="'$(SkipPlatformVerification)' != 'true'"> 

3) Añadir la variable de entorno SkipPlatformVerification al sistema y ponerlo en "verdadero" (Para volver a habilitar la verificación de la plataforma, configure la variable de entorno como "falsa"). Si necesita ayuda para configurar una variable de entorno, lea http://vlaurie.com/computers2/Articles/environment.htm. Si no desea agregar una variable de entorno, puede cambiar la condición por algo que siempre es falso (es decir, Condición = "'verdadero' == 'falso'")

+0

Comprobé el nivel de diagnóstico. En mi caso, PlatformVerificationTask demora 290174 ms. ¿Cual es la razon? – cubesoft

+0

Encontré el archivo Microsoft.CompactFramework.Common.Targets en la carpeta 3.5 en lugar de 2.0 % windir% \ Microsoft.NET \ Framework \ v3.5 \ Microsoft.CompactFramework.Common.targets – fefferoni

+0

Cambiar ** ** to ** ** si no desea tratar las variables de entorno. –

3

Simplemente redefina un objetivo en su. archivo csproj como este. Entonces funcionará a través de la máquina, o, por supuesto, podría copiar todo el bloque de código con la línea condicional añadida. De cualquier forma, no necesita modificar el archivo del sistema.

<Target Name="PlatformVerificationTask"></Target> 
Cuestiones relacionadas