Вы на самом деле не задаете вопрос из того, что я могу сказать.Но я могу дать некоторые отзывы / обсудить ваши цели.
- Релизные версии должны зависеть от последней производственной версии Libs.
Релизная версия должна зависеть от того, что она использовалав то время как это развивалось.Не то, что текущая версия.Возможно, вы захотите углубиться в то, что это требование и почему вы думаете, что оно вам нужно.
- если тесты не пройдены, зависимые проекты не должны быть собраны, а команда должна быть уведомлена.
TFS не поддерживает связывание сборок из коробки, вы можете изменить шаблон сборки, чтобы добавить поддержку, но это не особо чистое решение (imo).
Вы можете самостоятельно подписаться на ошибкустроит с использованием встроенных подписок на tfs alerts, однако каждый разработчик должен сделать это.(Если вы не подпишетесь на почтовую группу или не создадите пользовательскую почтовую программу).
Опять же, почему вы автоматически обновляете зависимости в других проектах?несомненно, вам лучше использовать получение обновлений, чем использование push и использовать технологию, подобную NuGet, для обработки ваших ссылок.
- простое ветвление: разработка, производство, версии с версиями и способы их структурированиясоответственно.
Это звучит как простое ветвление каждый раз, когда вы делаете релиз, что очень просто.
Если бы вы знали, какую ревизию вы выпускаете, вам не придется разветвляться иможет ветвиться, только если вам это нужно (например, чтобы исправить производственную ошибку).Требуется намного больше работы, так как вам нужно либо вручную пометить свой код при выпуске (в этот момент вы ничего не получите по сравнению с ветвлением), либо иметь автоматический процесс выпуска, который сделает это за вас.
Другие примечания
Вы не хотите использовать несколько коллекций командных проектов - это добавляет кошмар, когда речь идет об управлении серверами сборки.
Возможно, вы захотите обновить диаграмму, чтобы показать, чтокомандный проект, ветвь и просто стандартная папка.