Como todos sabemos, VS2010 tiene una actualización importante de su sistema de compilación, que se basa en MSBuild.
De acuerdo con los representantes de MS (véanse los comentarios en Visual Studio 2010 always rebuild project after hibernation/restart of computer) MSBuild ahora se inyecta en otras herramientas (como compiladores C++, enlazadores, etc.) para conocer las dependencias de un destino.
Uno de los inconvenientes de este enfoque es que ahora su proyecto puede ser reconstruida de manera forzada debido a modificaciones en los archivos irrelevantes :(
En mi caso es C:\PROGRAMDATA\NVIDIA CORPORATION\DRS\NVDRSDB0.BIN
, que se cambia periódicamente por el servicio de actualización de NVIDIA (Windows 7 32- bits).VS2010 reconstruye el proyecto C++ debido a archivos irrelevantes modificados
he descubierto que girando opciones VS2010 "proyecto MSBuild verbosidad resultados de generación" y "MSBuild proyecto de registro de generación de archivos verbosidad" a " de diagnóstico".
Después de que yo era capaz para ver la causa de el tema de la ventana de generación de salida:
Task "CL" (TaskId:55)
Read Tracking Logs: (TaskId:55)
..\..\temp\Release\Editor\cl.read.1.tlog (TaskId:55)
Outputs for E:\USERS\A.USER.ORG\DEVEL\EDITOR\STDAFX.CPP: (TaskId:55)
E:\USERS\A.USER.ORG\DEVEL\TEMP\RELEASE\EDITOR\STDAFX.OBJ (TaskId:55)
C:\PROGRAMDATA\NVIDIA CORPORATION\DRS\NVDRSDB0.BIN was modified at 23-Feb-12 12:08:20. (TaskId:55)
stdafx.cpp will be compiled. (TaskId:55)
...
Tracking command: (TaskId:55)
C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\Tracker.exe ... stdafx.cpp /clr:nostdlib (TaskId:55)
stdafx.cpp (TaskId:55)
Done executing task "CL". (TaskId:55)
Una de las soluciones es añadir los archivos irrelevantes a C++ lista ignorar:
<ItemGroup>
<ClNoDependencies Include="NVDRSDB0.BIN" />
<ClNoDependencies Include="C:\PROGRAMDATA\NVIDIA CORPORATION\DRS\NVDRSDB0.BIN" />
</ItemGroup>
Desafortunadamente esto no ayuda :(Y yo no Todavía no compruebas cómo funciona este truco en otras PC, donde tales archivos no existen.
Entonces la pregunta es: ¿Alguien es consciente de la solución de trabajo para este problema?
No intenté instalar SP1 para VS2010: según los entusiastas, este paso tampoco ayuda.
Deshabilitar el servicio de actualización de NVIDIA probablemente sea útil (dejará de actualizar el archivo), pero hay o puede haber otro software que no se pueda desactivar de esta manera (antivirus, otras utilidades, etc.).
preguntas Véase también relacionados:
- VS2010 always thinks project is out of date but nothing has changed (el problema similar parece ser causado por un archivo de origen que falta)
gracias por compartir la información. Parece que había visto algo similar en el foro de un foro de Microsoft. De todos modos, el enfoque con ClNoDependencies no funciona en VS2010 ... y la próxima versión mencionada probablemente sea VS2012, que está saliendo a la luz. Espero que el problema finalmente se solucione, entonces :) – AntonK
De hecho, tengo esta solución para trabajar ... principalmente. El truco consistía en agregar la definición de "sin dependencias" a cada etapa: compilar, vincular, crear recursos, insertar el manifiesto (puedo haber olvidado uno). Llegué tan lejos como los primeros, y vi que mis reconstrucciones "extra" solo realizaban los recursos e integraban los pasos manifiestos. Entonces ... casi estaba allí, y luego mi departamento de TI nos hizo resolver el problema volviendo a la versión anterior de la aplicación antivirus de Sophos, por lo que todo el problema desapareció. – aldo
Actualización: Sophos implementó una corrección en una versión posterior que soluciona este problema. Ya no tengo este problema con la versión actual de Sophos y Visual Studio 2010. – aldo