2009-05-26 13 views
8

Tengo un archivo de solución visual studio (2005) con 70 proyectos.
Cada vez que presiono F5 para ejecutarlo, me dice que 4 de los proyectos están desactualizados y me pregunta si deseo reconstruirlos. Hace esto a pesar de que acabo de hacer una compilación completa.
Entiendo (en principio) que uno de los otros proyectos debe actualizar algo de lo que dependen estos proyectos, pero ¿cómo puedo averiguar qué?Cómo corregir el mensaje de visual studio 'projects out of date' cada vez que lo ejecuto

¿Hay alguna herramienta para ayudar, o qué procedimiento debo seguir para descubrir qué causa que VS marque estos proyectos para una reconstrucción?

ACTUALIZACIÓN:
Para los interesados ​​parece que mi PC era/es el problema (mi HD ha estado actuando recientemente). Cuando traté de rastrear el problema, las sucesivas reconstrucciones comenzaron a generar errores de compilación. Hice una limpieza y construcción y obtuve una gran cantidad de errores (obviamente espurios). Un reinicio más tarde, seguido de una reconstrucción, todos los errores y el problema de dependencia se han ido.
Disculpe ahora, mientras voy y respaldo todos mis archivos importantes ...

+1

Una buena forma de depurar este problema se detalla aquí: http://stackoverflow.com/questions/2762930/vs2010-always-thinks-project-is-out-of-date-but-nothing- ha cambiado – Ben

Respuesta

7

Me gustaría ejecutar una compilación normal, dos veces seguidas. La segunda vez, configuré la verbosidad de MSBUILD en "Normal" o superior (en Herramientas-> Opciones, "Proyectos y soluciones", "Crear y ejecutar". Leí la salida cuidadosamente para ver qué se construyó realmente segunda vez.

De hecho, ahora que lo pienso, si esto realmente es un ciclo, entonces una parte de lo que se construye por segunda vez debe ser lo que está causando que se construya por tercera vez, etc. Quizás usted tenga un paso posterior a la construcción en uno de los proyectos que toca un ensamblaje u otro recurso utilizado como entrada en un paso anterior. Con 70 proyectos en la solución, algo como esto sería fácil de causar inadvertidamente y difícil de atrapar. para aprender lo suficiente acerca de MSBUILD para poder detectar cuando uno de sus pasos es decidir que necesita construir porque algo cambió, luego comprender su solución lo suficientemente bien como para saber que nada debería haber cambiado, y luego ver eso g ha cambiado que no debería haber cambiado.

Cuando termine con este ejercicio, es posible que haya adquirido alguna información que le permitirá ayudar a dividir la solución en soluciones más pequeñas.

1

Tuve el mismo problema al vincular un .netmodule en mi proyecto que se cumplió con un paso de compilación personalizado. El prolema resultó ser que también estaba vinculando una lib de C++ y el archivo .netmodule estaba listado en la misma línea en la entrada del enlazador.

Ejemplo: .LIB .netmodule

Insead de: Lib \ n .netmodule

1

Una forma más rápida de detalle del registro de Juan en Visual Studio 2013, es abrir árbol del proyecto del Explorador de soluciones; los archivos que no se encontraron no tendrán el pequeño triángulo delante del nombre de archivo (con el que normalmente puede ver una lista de símbolos en ese archivo).

Elimine esos archivos y, para mí, el mensaje AlwaysCreate desapareció (solo verá 'AlwaysCreate' cuando el nivel detallado esté configurado como mínimo 'Normal').

1

Tuve este problema y resultó que tenía un archivo de cabecera agregado a mi proyecto pero que había eliminado del disco. Al eliminar el archivo de encabezado inexistente de las correcciones el comportamiento.

1

Tuve este problema exacto en VS2010 después de eliminar algunos archivos fuente que ya no se usaban en mi proyecto. Simplemente seleccionando "Solución limpia" en el menú "Crear" y luego reconstruyendo la solución me solucionó el problema.

Cuestiones relacionadas