Es ist nicht wirklich - Microsoft sagt, dass der beste Weg, um mit Referenzen umzugehen, darin besteht, Ihr Projekt in einer riesigen Lösung zu erstellen. Ja, ich weiß, sie meinen es auch wirklich so.
Das Muster- und Praxisteam hat seine Best Practices in Bezug auf TFS zusammengestellt, dies gilt jedoch für allgemeine Builds. Es gibt drei Arten von Lösungskonfigurationen, die "1 große Lösung", ein partitionierter Ansatz, der dem ähnelt, wie die meisten Benutzer Builds verwalten, indem sie nacheinander erstellen und Artefakte in ein gemeinsames Verzeichnis kopieren (was von .NET nicht unterstützt wird) mit einem serverweiten 'Include'- oder' Library'-Pfad zur Referenz) und einem Multiple Solution-Setup, das eine komplexere Version des partitionierten ist.
Man sagt
In general you should:
Use a single solution strategy unless the resulting solution is too large to load into Visual Studio.
Use multiple solutions to create specific views on sub-systems of your application.
Use multiple solutions to reduce the time it takes to load a solution and to reduce build time for developers.
Für TFS empfehlen sie, externe Projekte innerhalb Ihres Projekts zu verzweigen, anstatt sich auf die Arbeitsbereichszuordnung zu verlassen, die eher den externen Projekten von Subversion ähnelt. Persönlich denke ich, dass ihre Ratschläge dort keine bewährten Methoden sind, aber ich nehme an, dass sie versuchen, alle Build-Probleme zu minimieren, die bei der Verwendung von Referenzen auftreten.
Ich hatte Probleme mit .NET-Builds, die versuchen, das System zu verkürzen, indem nur das erstellt wird, was benötigt wird. Ein nächtlicher Build, der alles erledigt und jede neue Assembly in ein Verzeichnis kopiert, war die beste Möglichkeit für alle, synchron zu bleiben - insbesondere für die Tester. Beachten Sie, dass dies wirklich nur für .NET-Apps gilt. C ++ - Apps funktionieren normalerweise immer noch, da sie keine versionierten Assemblys oder ähnliche Aspekte haben, die Probleme beim Aufrufen von Komponenten verursachen können. Dieser Ansatz funktioniert gut, aber Sie können nicht immer davon ausgehen, dass teilweise Builds in Ordnung sind. Das Dampfen des Ganzen und das Wiederherstellen sind am sichersten.