2010-01-26 8 views
8

Ich habe ein VS-Addin geschrieben, das den Build-Befehl von Visual Studio abfängt und ein anderes Build-System verwendet, um einen Build zu erstellen. Ich habe meine Build zeigt Fehler im richtigen Format, so dass Sie auf sie in VS klicken können, aber der einzige Schritt für die vollständige nahtlose Integration ist zu verhindern, VS "run" oder "debuggen" Befehle zu jammern, die es nicht denkt das Projekt ist gebaut (wann ist es natürlich) weiß jemand, wie ich VS dazu bringen kann zu denken, dass das Projekt gebaut wird?Woran erkennt Visual Studio, dass ein Build aktuell ist?

+0

Schauen Sie hier: http://stackoverflow.com/questions/2762930/vs2010-always-thinks-project-is-out -von-Datum-aber-nichts-hat-geändert –

Antwort

5

In Kürze, MSBuild/Visual Studio überprüft, was die Ausgabe von definierten Zielen in der Konfiguration eines bestimmten Projekts ist. Als Nächstes vergleicht es den Zeitstempel der Datei (en), die als Zielausgabe angegeben wurden, mit den Zeitstempeln aller Dateien, die als Eingabe für das bestimmte Ziel angegeben wurden. Wenn die Eingabe aktueller ist als die Ausgabe, dann fordert sie an, die Ausgabe neu zu generieren (Quellcode neu kompilieren oder Objektdateien neu verknüpfen usw.)

Wie ich VS dazu verleiten kann zu denken, dass das Projekt erstellt wird ?

Aktualisierung Zeitstempel der Eingabedateien, nämlich Quelldateien (.cpp, .cs) oder binäre Dateien wie .obj als Eingabe verwendet für Linker und andere Dateien, die von Ihrem Interesse sind.

Manchmal mache ich es manuell mit dem folgenden Befehl touch Dienstprogramm von GnuWin32 Ausgabe

touch myfile.obj 
2

Visual Studio verwendet den Datums-/Zeitstempel der Quelldateien. Wenn die Quelldatei aktueller ist als die kompilierte Binärdatei in bin\debug oder bin\release, erstellt Visual Studio die Lösung neu.

Manchmal kann der Neuerstellungsprozess fehlschlagen, die schnelle Lösung besteht darin, die zwischengespeicherten Debugdateien *.pdb im Ordner bin\debug oder bin\release der Lösung zu löschen. Erstellen Sie dann einen Build für die Lösung.

Hoffen, dass dies hilft, Mit freundlichen Grüßen, Tom.

Verwandte Themen