2013-11-15 9 views
6

Ich habe mit dem Team Foundation Server 2012 arbeitet ein Continuous Integration Build für ein Data Warehouse Projekt zum Laufen zu bringen. Dabei bemerkte ich, dass die Kennzeichnung und die Gebäude von einem Etikett waren nicht die Ergebnisse ergeben, die ich erwartet hatte. Bei der Erforschung des Problems war ich in der Lage, das Problem zu replizieren nur die Befehlszeilenargumente, die von Team Foundation Server Command Line Tool. Das hat mir geholfen, alles in der Build-Definition zu eliminieren, die den Build beeinflusst haben könnte.TFS Label-Inkonsistenz

Also das ist mein Problem: Ich habe einen Build, die zwei verschiedene Projekte in einem einzigen Build baut. Es hat grundsätzlich zwei * .SLN-Dateien. Ich habe ein Label auf 2 Assets angewendet, eins in jedem Projekt. Ich kann dann den Befehl ausführen, um zu sehen, welche Assets das Label haben. Wenn ich das mache, bekomme ich das erwartete Ergebnis. Wenn ich jedoch den Befehl zum Abrufen der mit diesem Label verknüpften Assets ausfühle, wird nur eine der beiden Dateien abgerufen. Ich habe überprüft, dass ich beide Dateien ziehen kann, indem ich eines der Projekte lösche. Dies ist das Setup, das ich mit der Builddefinition, Arbeitsraum und Label

TFS Paths haben:
$/Dev/Project1
$/Dev/Project2

Workspace Mapping
Projekt1: C:/SourceControl/Projekt1 Projekt2: C:/SourceControl/Projekt2

DeploymentFolder
Project1: // devserver/SSIS/Project1
Projekt2: // devserver/SSIS/Project2

Ausgeführte Befehle:
Label anwenden:
tf Label TestLabel $/DEV/Project1 /PackageA.dtsx
tf Label TestLabel $/DEV/Project2/PackageA.dtsx

Review Label:
tf Labor els/Format: Detaillierte LTestLabel

von Aufkleber Erhalten:
tf get/r/Version: LTestLabel

Nach der Ausführung des Befehls erhalten tf ich die folgenden Ergebnisse

Bereitstellungsordner: // devserver/SSIS/Projekt1 enthält die Datei PackageA.dtsx
Bereitstellungsordner: // DevServer/SSIS/Project2 enthält 0 Dateien.

Es scheint, dass es einen Filter oder eine Einschränkung für das Ziehen von Assets in verschiedenen Projekten mit demselben Label gibt. Ich würde erwarten, dass, wenn ich ein Etikett auf einen Vermögenswert in TFS anwenden, dann die Etiketten ziehen, sollte es mir erlauben, alle Vermögenswerte abzurufen mit dem Etikett aufgebracht. Hat das jemand gehört oder erlebt? Jede Hilfe wäre willkommen.

Antwort

2

Sie geben nicht, was (local) Ordner, den Sie in sind, wenn Sie die get ausführen: da Sie keinen Ordner angeben, zu erhalten, ist es das aktuelle impliziert, das entspricht:

tf get /recursive /version:Llabelname . 

Wenn Sie beide erhalten möchten, geben Sie ein Verzeichnis beide enthalten, zum Beispiel:

tf get /recursive /version:Llabelname $/ 

Dies setzt natürlich voraus, dass sowohl die Dateien in Ihrem Label abgebildet werden.