Я предполагаю, что вы уже исследовали, действительно ли вам нужно делать «копии» отдельных командных проектов. Помните, что концепция TFS «командного проекта» - это ОЧЕНЬ БОЛЬШОЙ контейнер высокого уровня. Это не то же самое, что большинство IT-магазинов считают «Проектом». Думайте о «Microsoft Vista» или «Office 2007» как о проекте, а не о «новом выпуске системы дебиторской задолженности компании XYZ» как о проекте в смысле Team Project.
У меня есть клиент, который выбрал один командный проект для TFS. В этом нет ничего плохого - и это действительно лучший сценарий во многих обстоятельствах.
Если вам действительно нужна очень сильная изоляция между вашими копиями приложения (возможно, они являются отдельными клиентами и вам нужно очень сильное разделение безопасности) и должны иметь отдельные командные проекты.
Это сказало - вы все еще - как вы заявили, необходимо делить код между экземплярами вашего приложения. Первое, что я бы настоятельно рекомендовал, это уйти от обмена «Вырезать и вставить». Я действительно попытался бы выделить общий код в отдельное решение и сгенерировать двоичные файлы для этого (возможно, вы уже сделали это!)
Это описано в Codeplex TFS: http://tfsguide.codeplex.com/
Другой подход, который я применил для нескольких клиентов, - это создать командный проект, содержащий общий код. «Build» создает двоичные файлы для общего кода, а «Deploy» просто копирует их в «известное местоположение» (т. Е. Общий ресурс UNC на компьютере сборки)
Для приложений, которые являются «потребителями» «Framework», мы просто использовали группу «AdditionalReferencesPath» для включения местоположения этого известного местоположения.
Более того - этот инструмент: http://tfsdepreplicator.codeplex.com/ может быть полезен. Это позволит вам автоматически запускать сборки для ваших «потребительских» проектов при создании решения «Framework».