2010-01-26 3 views
8

He escrito un complemento VS que intercepta el comando de compilación de Visual Studio y utiliza otro sistema de compilación para hacer una compilación. Tengo mi compilación mostrando errores en el formato correcto para que pueda hacer clic en VS, pero el único paso para una integración completa es evitar que los comandos "ejecutar" o "depurar" de VS gimen, no cree el proyecto está construido (cuando por supuesto lo es) ¿alguien sabe cómo puedo engañar a VS para que piense que el proyecto está construido?¿Qué usa Visual Studio para determinar si una compilación está actualizada?

+0

vistazo aquí: http://stackoverflow.com/questions/2762930/vs2010-always-thinks-project-is-out -de-fecha-pero-nada-ha-cambiado –

Respuesta

5

En breve, MSBuild/Visual Studio comprueba qué resultados se obtienen de los objetivos definidos en la configuración de un proyecto en particular. A continuación, compara la marca de tiempo de los archivos especificados como salida de destino con marcas de tiempo de todos los archivos especificados como entrada para ese objetivo en particular. Si la entrada está más actualizada que la salida, solicita regenerar la salida (volver a compilar el código fuente o volver a vincular archivos de objeto, etc.)

Cómo puedo engañar a VS haciéndole creer que el proyecto está construido ?

Actualización de fecha y hora de los archivos de entrada, es decir, archivos de origen (.cpp, .cs) o archivos binarios como .obj utilizados como entrada para enlazador y otros archivos que son de su interés.

veces lo hago manualmente emitiendo el siguiente comando usando touch utilidad desde GnuWin32

touch myfile.obj 
2

Visual Studio utiliza la marca de fecha/hora de los archivos de origen. Si el archivo fuente está más actualizado que el binario compilado ubicado en bin\debug o bin\release, Visual Studio reconstruirá la solución.

A veces, el proceso de reconstrucción puede fallar, la solución rápida es eliminar los archivos de depuración intermedios *.pdb dentro de la carpeta bin\debug o bin\release de la solución. Luego emita una versión de la solución.

Espero que esto ayude, Saludos cordiales, Tom.

Cuestiones relacionadas