2009-05-20 8 views
2

Vor kurzem habe ich unser Team Build-Projektdatei aus geändert:Build ist erfolgreich, aber Binärdateien sind nirgendwo zu finden. Warum?

<SolutionToBuild Include="$(SolutionRoot)/OurSolution.sln"> 

zu

<SolutionToBuild Include="$(SolutionRoot)/**/*.csproj"> 

Dies war notwendig, weil wir viele Projekte haben, die nicht in der Lösung Datei enthalten und für unsere Zwecke Es ist nicht möglich, die Projekte einfach hinzuzufügen. Wir möchten sie alle auf einmal zusammenbauen können. Wir haben also einen Weg gefunden, alle Projekte rekursiv zu erstellen.

Dies funktioniert gut und der Build kann ohne Fehler durchgeführt werden. Das einzige Problem ist, dass keine Binärdateien in den Ablageordner kopiert werden! Tatsächlich können wir sie nirgends finden! Ausgehend von der Lösung werden die Binärdateien in einen Binärdateien-Ordner auf dem Build-Agent kopiert. Aber nichts ist da, wenn man aus den einzelnen Projekten baut.

Also meine Frage ist, wo sind sie? Warum erstellt das Team Berichte, dass alles gut gebaut wurde, aber dann ist nichts zu kopieren. Sie sind nicht einmal im normalen Ordner/Release Ordner unter dem Projektverzeichnis.

Kann mir jemand helfen zu verstehen? Ich denke, es hat etwas mit Informationen in der Lösungsdatei zu tun, die nicht in den Projektdateien enthalten sind, aber ich kann es nicht herausfinden.

Antwort

4

Ich denke, dass die SolutionToBuild Element leer ist und nichts gebaut wird. Sie können überprüfen, indem

<Message Text="SolutionToBuild: $(SolutionToBuild)" Importance="high"/> 

Dann schauen Sie durch Ihr Protokoll für diese Aussage.

Sie können Ihren Ansatz in jedem Fall überarbeiten. Besser wäre es, eine MSBuild-Datei selbst zu erstellen, also BuildAll.proj. In dieser Datei verwenden Sie einfach die MSBuild task, um alle Projekte zu erstellen. Legen Sie dann diese Datei als SolutionToBuild fest. Dies gibt Ihnen etwas mehr Flexibilität, wenn die Projekte gebaut werden. Sie können Schritte vor/nach dem Build für diese Projekte oder alle hinzufügen.

Sayed Ibrahim Hashimi

My Book: Inside the Microsoft Build Engine : Using MSBuild and Team Foundation Build

+0

Danke für den Rat. Das war es, nichts wurde überhaupt gebaut. Zufälligerweise habe ich gerade angefangen, Ihr Buch gestern bei der Arbeit zu lesen! Sie hatten eine neue Kopie in der Firmenbibliothek. Bis jetzt erzählt es mir all die Dinge, über die ich mich gewundert habe, aber hatte keine gute Quelle, auf die ich mich beziehen könnte. – JimDaniel

+0

Das ist ziemlich lustig, lassen Sie mich wissen, was Sie über das Buch denken. –

0

Sie haben sich die TFSBuild-Protokolle angesehen. Wenn Sie TFS 2008 haben, haben die Protokolle viele knackige Details, die das TFS 2005 nicht hatte.

Ein anderer Gedanke ist, FileMon zu starten und nach Dateien zu suchen, die vom TFSBuild-Dienst erstellt werden.

Verwandte Themen