Frage

Ich versuche, eine common.targets Datei mit einigen gemeinsamen msbuild Ziele ich in meinem Team verwenden möchten einzurichten Builds und damit in meine TFSBuild.proj-Dateien importieren. Ich frage mich, was der beste Weg ist, um dies zu erreichen? Muss ich common.targets speichern direkt neben jeder Datei TFSBuild.proj und damit Duplikate der Zieldatei für jedes Team-Build mit oder gibt es einen anderen Weg? Ich möchte nicht die Ziele Datei auf jedem der Build-Maschinen setzen.

War es hilfreich?

Lösung

Team Build hat eine Bootstrap Phase vor der TFSBuild.proj, in dem nur im selben Verzeichnis der TFSBuild.proj und andere Dateien aus der Quellcodeverwaltung heruntergeladen aufgerufen wird. Also, wenn Sie Ihre Ziele Datei wollen unter Quellcodeverwaltung zu sein, müssen Sie es an der gleichen Stelle wie die TFSBuild.proj setzen

Weitere Details in dieser Antwort

Ich habe nie versucht es, aber Sie könnten in der Lage sein, die Ziele auf einer Netzwerkfreigabe zu setzen, und importieren Sie einen unc Anteil verwendet wird. So etwas wie

<Import Project="\\anothermachine\share\something.targets"/>

Aber das würde erfordern, dass das Build-Konto und alle Menschen Desktop ausgeführt haben bauen Zugriff auf diese Netzwerkfreigabe.

Andere Tipps

Legen Sie es in einer gemeinsamen Position, die Sie in der Quellcodeverwaltung mögen. Bevor die Ziele verwenden, tun ein Get aus Ihrer TFSBuild.proj-Datei wie folgt:

<PropertyGroup>
  <!--Path to the TFS Command Line (used for checkin and out)-->
  <TxTf>&quot;C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\tf&quot;</TxTf>

  <WorkingDirectory>C:\YourPathHere<WorkingDirectory>
  <CustomProjTFSDir>&quot;$/YourProj/YourCustomProjPath&quot;</CustomProjTFSDir>
</PropertyGroup>

<Exec WorkingDirectory="$(WorkingDirectory)"
      Command="$(TxTf) get $(CustomProjTFSDir)"/>

Der Schlüssel zu diesen Arbeiten ist ein Arbeitsbereich für Ihre Build-Agenten Benutzer einrichten, die auf Ihre individuellen Sachen zeigen. Dieses Verzeichnis sollte nicht im gleichen Raum wie Ihre normale baut.

Vaccano

Das Ziel einer gemeinsamen .targets Datei ist Duplizierung Ihrer Skripte zu reduzieren. Wenn Sie mehrere Kopien dieser Datei unter Quellcodeverwaltung haben, was passiert, wenn Sie sie ändern müssen (eine Exe-Pfad zu aktualisieren vielleicht)? Persönlich bevorzuge ich einen anderen Ort für gemeinsame Dateien, die alle / alle anderen Build-Skripte verweisen können. Der einzige Nachteil ist, Sie wahrscheinlich werden hart codieren den Pfad zu dieser Datei.

Sie können sich neben den MS Ziele in $ Volume speichern \ Programme \ MSBuild. Der Vorteil dabei ist, dass Sie einen relativen Pfad der eingebauten Know-Metadaten „$ (MSBuildExtensionsPath) \ Path \ Um Ihre \ Targets \“ erstellen kann mit

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top