2016-07-20 11 views
0

Wir versuchen, einen Weg zu finden, TFS für unsere Bedürfnisse einzurichten. Wir haben, sagen wir, Projekt A, Projekt B und Framework, ein Projekt, das von vielen Projekten geteilt wird.Gemeinsames Projekt in TFS

Rahmen

Projekt A - Rahmen

Projekt B - Rahmen

Wenn der Rahmen geändert wird, wollen wir sicherstellen, dass jedes Projekt, das es hat die letzte Version verwenden .

Zuerst dachten wir darüber nach, das Framework zu teilen, indem wir es in Visual Studio über "Als Link hinzufügen" zu Projekt A und B hinzufügen, aber dies würde auch alle Zweige ändern, was nicht gut ist. Also dachten wir über das Kompilieren von Framework in eine DLL und fügen Sie eine Kopie dieser DLL in jedes Projekt ein. Der Nachteil ist, dass die DLL für jedes Projekt manuell aktualisiert werden muss.

Was ist der beste Weg, um ein Projekt in TFS zu teilen?

Antwort

1

Es gibt keine Freigabe in TFS als in der Art, wie Sie mit Visual SourceSafe konnten. Sie haben 3 Optionen

  1. Verzweigung und Zusammenführung verwenden. Sie verzweigen Framework in Project A und Project B. Wenn Änderungen am Framework vorgenommen werden, müssen die Projektteams diese in ihr Projekt zusammenführen. Wenn sie Änderungen an Framework in ihrem Projekt vornehmen, müssen sie wieder mit Framework zusammengeführt werden, damit andere Projekte die Änderungen konsumieren können.

  2. Verwenden Sie Arbeitsbereichzuordnungen. Im Wesentlichen wird die Freigabe eingerichtet. Wenn ich einen get in meinem ProjectA-Arbeitsbereich abrufe, wird der Code in Framework auch an ein Unterverzeichnis gesendet, auf das ich in ProjectA verweisen kann. Alle Änderungen werden an Framework und alle Projekte weitergegeben, sobald sie das letzte Mal ausgeführt wurden.

  3. Und wahrscheinlich ist die beste Lösung, etwas wie niget zu verwenden. Ihr Framework-Build würde die neueste Version verpacken und veröffentlichen, die dann von den Projekten verbraucht würde. Sie können wählen, mit einer Version zu bleiben oder die späteste zur Erstellungszeit zu ziehen.

TFVC Gems - sollten die ersten 2 Optionen abdecken

Dependency Management with NuGet.pdf - spricht über die Option 3

0

Ich gehe davon aus, dass wir über ein .NET-Setup sprechen, wenn nicht, dann ist dies möglicherweise nicht relevant.

ich glaube, wenn Sie einen Verweis auf den Rahmen Projekt (und nicht die kompilierte DLL), dann jedes Mal, wenn Sie Ihre Projekte neu kompilieren, werden Sie die neueste Version von Framework (offensichtlich abholen, dann ist dies abhängig von Ihre Verzweigungsstruktur).

Eine andere Sache zu prüfen, wenn das oben genannte nicht funktioniert, ist, einen Build zu verwenden, um die Abhängigkeiten zuerst neu zu kompilieren.