3 Stimmen

Zwischenverzeichnisse in VC++ vermeiden

Ich verwalte ein Build-Skript, das devenv oder Incredibuild von der Befehlszeile aus aufruft, um eine dynamisch generierte Visual C++ 2010-Lösung zu erstellen, die aus mehreren hundert Projekten besteht. Wir suchen nach Möglichkeiten, unseren Build zu verbessern, und ich habe mich gefragt, ob es eine Möglichkeit gibt, VS zu sagen, dass es keine Zwischenverzeichnisse verwenden soll.

Ein Beispiel: Ich habe ein Projekt Foo in einer Lösung Bar . Wenn ich baue Bar die Ausgabe von Foo landet sowohl in Bar/Foo/$(Configuration)/$(Platform) und in Bar/$(Configuration)/$(Platform) .

Ich würde gerne wissen, ob es eine Möglichkeit gibt (von der Kommandozeile aus oder durch Bearbeiten der Projektdateien), devenv direkt im Ausgabeverzeichnis der Lösung und nur dort zu erstellen. Gibt es außerdem Gründe, warum ich so etwas nicht tun sollte/könnte?

6voto

Martin Beckett Punkte 92477

Setzen Sie einfach den Pfad des Zwischenverzeichnisses in den .vcxproj-Dateien auf das gleiche wie das Ausgabeverzeichnis der Lösung.

Unter der Voraussetzung, dass Ihre Projekte nicht denselben Ausgabedateinamen haben, ist es kein Problem, Zwischenverzeichnisse zu mischen. Sie können auch festlegen, dass alle Zwischenverzeichnisse unter TEMP oder auf einem anderen Laufwerk angelegt werden.

4voto

Frank Punkte 41

Tun Sie das nicht!!!! da es einen Fehler (ich nenne dieses Verhalten einen Bug) in MSBuild gibt, der dazu führt, dass bei einem Rebuild eines Projekts alle Dateien ALLER Projekte, die dasselbe Zwischenverzeichnis verwenden, im Ausgabeordner gelöscht werden, bevor das Projekt gebaut wird...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X