2010-10-20 6 views
5

Ich wünsche die neue gated Check-in-Funktion von TFS 2010Gated Check-In in TFS2010

Ich habe etwa 10 Lösungen, die alle teilt als Abhängigkeit einer proprietäre Shared-Code-Bibliothek zu nutzen.

Meine Struktur ist:

TeamProj/SharedCode 
TeamProj/Proj1 
TeamProj/Proj2 
TeamProj/Proj3 
........ 

Die Frage, die ich habe, ist, wie kann ich eine Integration aller Projekte Verrechnungen, die den Shared Projekt als Abhängigkeit haben?

Es ist möglich, dass jemand Änderungen vornehmen kann und sich nicht bewusst ist, bis eines der anderen Projekte manuell geöffnet/gebaut wird.

Ich möchte nur eine große Integration Build auslösen, wenn Check-Ins gegen den SharedCode-Ordner vorgenommen werden.

Das Problem ist, wenn ich die Source-Pfade abbilde, die benötigt werden, um die Builds für die anderen Projekte tatsächlich auszuführen, werden Check-Ins automatisch auch für alle THOSE-Projekte übernommen.

Wie kann ich einen gated-checkin-gesteuerten Ordner haben, der unabhängig von der Quelle ist, die tatsächlich zum Ausführen eines Builds benötigt wird?

Cheers, Dave

Antwort

2

Wenn ich richtig verstehe, wollen Sie eine Build-Definition als gated checkin erstellen, die TeamProj/Proj1, TeamProj/Proj2, TeamProj/Proj3, wenn eine Quelldatei in TeamProj/Shared baut geändert?

In diesem Fall ist eine Lösung, die mir in den Sinn kommt, ist die folgende:

  1. die Build-Definition erstellen mit nur Quellordner TeamProj/Shared.
  2. Ändern Sie die Build-Vorlage, um einen TFS GET für die anderen Ordner
  3. Ändern Sie die Build-Vorlage zum Erstellen aller drei Lösungen Proj {1,2,3}, nicht die SharedCode-Lösung.

Ist das, was Sie wollen?

+0

Kamerad - das klingt perfekt - Können Sie mir mehr Informationen darüber geben, wie Sie ein TFS GET tun? –

+0

Natürlich kann ich http://www.msbuildextensionpack.com/ für eine Msbuild-Lösung (Erweiterung Msbuild-Aktivitäten). Was Sie benötigen, ist eine Aktivität . Für die neuen tfs2010 workflowbasierten Build Templates habe ich noch keine Lösung, aber ich werde später wiederkommen, da wir auch ein zusätzliches Checkout benötigen (nicht ganz getLatest, wie du es brauchst, aber der Unterschied ist minimal). – eFloh