Ho scritto un addin VS che intercetta il comando di compilazione di Visual Studio e utilizza un altro sistema di build per creare una build. Ho la mia build che mostra errori nel formato giusto in modo che tu possa fare clic su di essi in VS, ma l'unico passaggio rimanente per un'integrazione completamente trasparente è quello di impedire che i comandi di "esecuzione" o "debug" di VS non provino a lamentarsi il progetto è costruito (quando ovviamente lo è) qualcuno sa come posso ingannare il VS nel pensare che il progetto sia costruito?Che cosa usa Visual Studio per determinare se una build è aggiornata?
risposta
In breve, MSBuild/Visual Studio verifica l'output dei target definiti nella configurazione di un particolare progetto. Successivamente confronta il timestamp dei file specificati come output di destinazione con timestamp di tutti i file specificati come input per quel particolare target. Se l'input è più aggiornato dell'output, richiede di rigenerare l'output (ricompilare il codice sorgente o ricollegare i file oggetto, ecc.)
Come posso ingannare VS nel pensare che il progetto sia stato costruito ?
Aggiornamento timestamp di file di input, vale a dire i file sorgente (.cpp
, .cs
) o file binari come .obj
utilizzati come input per il linker e altri file che sono di vostro interesse.
A volte lo faccio emissione manualmente il comando seguente utilizzando touch utilità dal GnuWin32
touch myfile.obj
Visual Studio utilizza il timbro data/ora dei file di origine. Se il file sorgente è più aggiornato, il file binario compilato situato in bin\debug
o bin\release
, Visual Studio ricostruirà la soluzione.
A volte, il processo di ricostruzione può fallire, la soluzione rapida è quella di eliminare i file di debug intermedi *.pdb
all'interno della cartella bin\debug
o bin\release
della soluzione. Quindi emettere una build sulla soluzione.
Spero che questo aiuti, Cordiali saluti, Tom.
- 1. Come fermare una build in Visual Studio?
- 2. "La cache del componente di Visual Studio non è aggiornata, quindi riavvia Visual Studio."
- 3. Statistiche di Visual Studio Build
- 4. Usa Babel in Visual Studio?
- 5. Come determinare quale service pack è in esecuzione Visual Studio?
- 6. Che cosa è implicato nel creare una "build"?
- 7. Per che cosa si usa sigaddset?
- 8. Come determinare se Type è una struct?
- 9. JSONCPP Build con Visual Studio 2010
- 10. php is_function() per determinare se una variabile è una funzione
- 11. Visual Studio evento pre-build controllare per vedere se esiste una directory (e file) ed eliminarlo se lo fa
- 12. Determinare se una proprietà dell'oggetto è ko.observable
- 13. Per che cosa si usa Python?
- 14. Che cosa usa wikipedia per scalare?
- 15. Per che cosa si usa cordova/argscheck?
- 16. Che cosa si usa per scrivere Vai
- 17. Qual è la differenza tra una "build" e una "ricostruzione" in Visual Studio?
- 18. Per che cosa si usa maven.multiModuleProjectDirectory?
- 19. Come si annulla una build in corso in Visual Studio?
- 20. Determinare se una classe Java è una classe SE portatile
- 21. Determinare se una variabile è compresa nell'intervallo?
- 22. Usa proxy in Visual Studio emulatore per Android
- 23. Cosa è più veloce e migliore per determinare se esiste una chiave di array in PHP?
- 24. Cosa può WinDbg dirmi che Visual Studio non può?
- 25. Per che cosa è l'impostazione GUID di informazioni dell'assieme di Visual Studio 08 C#?
- 26. Che cos'è Visual Studio DTE?
- 27. Cosa considera Visual Studio "Codice utente"?
- 28. Build Boost 1.52 Librerie che utilizzano Visual Studio 2012 per il targeting per Windows XP
- 29. Come determinare se una classe Java è astratta per riflessione
- 30. Usa gv $ session per sapere se una query è sospesa
Guardate qui: http://stackoverflow.com/questions/2762930/vs2010-always-thinks-project-is-out -di-date-ma-non-ha-cambiato –