Ce n'est pas vraiment - Microsoft dit que la meilleure façon de gérer les références est de construire votre projet dans une seule solution énorme. Oui, je sais, ils le pensent vraiment aussi.
L'équipe des modèles et des pratiques a rassemblé ses meilleures pratiques en ce qui concerne TFS, mais cela s'applique aux versions générales. Il existe 3 types de configuration de solution, la "1 grande solution", une approche partitionnée qui ressemble beaucoup à la façon dont la plupart des gens géraient les builds en construisant tour à tour et en copiant les artefacts dans un répertoire commun (qui n'est pas aidé par .NET pas ayant un chemin d'accès «inclure» ou «bibliothèque» à l'ensemble du serveur pour faire référence), et une configuration de solution multiple qui est une version plus complexe de celle partitionnée.
Ils disent
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.
Pour TFS, ils recommandent de ramifier tous les projets externes à l'intérieur de votre projet, plutôt que de s'appuyer sur le mappage de l'espace de travail qui s'apparente davantage aux externes de subversion. Personnellement, je pense que leurs conseils ne sont pas les meilleures pratiques, mais je suppose qu'ils essaient de minimiser les problèmes de build que vous obtiendrez en utilisant des références.
J'ai eu des problèmes avec les builds .NET qui tentent de raccourcir le système en ne construisant que ce qui est nécessaire, une build nocturne qui fait tout, et copier chaque nouvel assemblage dans un répertoire était le meilleur moyen pour tout le monde de rester synchronisé - en particulier les testeurs. Notez que cela ne s'applique vraiment qu'aux applications .NET, celles C ++ ont tendance à fonctionner car elles n'ont pas d'assemblys versionnés ou d'aspects similaires qui peuvent causer des problèmes avec les composants appelants. Cette approche fonctionne bien, mais vous ne pouvez pas toujours supposer que les versions partielles sont correctes, vapoter le tout et reconstruire est le plus sûr.