Привет всем, вот проблема, которую я сейчас пытаюсь решить. Мы используем Team Foundation Server 2008 и используем автоматическую поддержку сборки из коробки.
У нас есть один очень большой проект, который включает в себя несколько взаимосвязанных компонентов и веб-сайтов, каждый из которых настроен как файл решения Visual Studio.
Многие из этих решений тесно взаимосвязаны, поскольку они могут содержать приложения или содержать общие библиотеки или общие компоненты. У нас около 20 приложений, три крупных веб-сайта и около 20 компонентов.
Каждое решение может включать проекты из других решений. Например, решение для консольного приложения также будет включать файлы проекта для всех компонентов, которые оно использует, так как мы должны гарантировать, что когда кто-то изменяет компонент и перестраивает его, он отражается во всех проектах, которые используют этот компонент и мы можем убедиться, что ничего не сломано.
У нас есть проекты сборки для каждого решения, будь то приложение, компонент или веб-сайт.
В этом примере мы будем называть их решениями 01, 02 и 03. Они ссылаются на несколько проектов (как их собственный основной проект, так и тестовые проекты, а также проекты, связанные с различными компонентами).
Решение 01 имеет проекты A, B и C.
Решение 02 имеет проекты C, D и E.
Решение 03 имеет проекты E, F и G.
Теперь по поводу проблемы.
Если я изменю проект А, система перестроит все три решения.
Хуже того, все тридцать решений ссылаются на общие проекты, используемые для доступа к данным (назовем это проектом H). Поскольку все они совместно используют один общий проект, если я изменяю какое-либо решение в своем стеке, даже если оно не касается проекта H, я все равно заканчиваю тем, что запускаю каждый отдельный сценарий сборки.
Есть мысли о том, как решить эту проблему? В идеале я хотел бы только начать сборку, в которой их составляющие проекты были напрямую изменены - т.е. в приведенном ниже примере, если бы я изменил проект C, я бы перестроил только решения 01 и 02.
Спасибо!