Andrew:
Прежде всего, мы нарушаем пару «лучших практик» для достижения этой цели, но прагматизм - это место, где лучшие практики встречаются с реальным миром.
Что мы делаем, это:
- Все двоичные файлы возвращаются в TFS в папке LocalBin, которая объединяет все наши двоичные файлы.
- Все общие сборки находятся в папке с именем LocalBin / SharedBin
- Папка SharedBin разветвляется на папку верхнего уровня SharedBin внутри группового проекта-потребителя.
- При успешной основной сборке LocalBin / Sharedbin объединяется с папками SharedBin проектов.
Получается что-то вроде этого:
$/ProjectA/Main/Localbin/SharedBin
разветвляется на $/ProjectB/Main/SharedBin
и $/ProjectB/Dev/Sharedbin
(а также эквивалентные папки в $/ProjectC
, $/ProjectD
и так далее).
Мы делаем это совместное использование только тогда, когда у нас есть успешная сборка MAIN, и сборка отвечает за слияние не только с другими проектами ветки MAIN, но также и с проектами ветки DEV, поэтому они актуальны.
Мы поиграли с идеей скопировать двоичные файлы в общую сетевую папку после успешной сборки и выработать соглашение, чтобы ссылаться на эти двоичные файлы в этой общей сетевой папке, но этот процесс работает хорошо для нас сегодня, и мы ' я не хочу вносить в него изменения в данный момент (сейчас происходят более важные вещи).
Это одна из тех вещей, которые трудно полностью описать в публикации, поэтому, если у вас есть дополнительные вопросы, я буду рад ответить на них.
Кстати, наше решение было построено и работает под TFS2008 с тысячами файлов проекта и, вероятно, миллионами строк кода. Это увеличивает время сборки из-за слияния и увеличивает объем пространства, используемого в вашем хранилище, но до сих пор оба были управляемы.