У нас есть много проектов, которые используют общую базу общих компонентов (dll).
В настоящее время сборка разработки для каждого проекта связана с dll, созданной из ствола компонентов. (т.е. сборки ствола используют dll из других сборок ствола)
Когда мы выполняем сборку релиза, у нас есть скрипт, который просматривает файлы проекта и заменяет ссылки на транки на конкретные пронумерованные версии компонентов (которые построены из помеченной ветви)
Я думаю, что это ослабляет тестирование, которое мы проводим во время разработки, потому что проект, над которым я на самом деле работаю, использует различные dll для того, что будет использовать сборка релиза. Я хотел бы всегда разрабатывать против пронумерованных версий компонентов и обновлять их только тогда, когда есть особая необходимость.
Однако другие члены команды утверждают, что, если мы не будем разрабатывать с использованием магистрали (и не будем обновлять более новые версии компонентов с каждым выпуском), у нас возникнет проблема, заключающаяся в том, что (a) наши продукты вряд ли когда-либо обновятся до более новой версии Компоненты затем (b), когда нам нужно обновить, это будет огромной задачей, потому что источник / интерфейсы компонентов сильно изменились.
Каким практикам вы следуете и почему?
Редактировать: Извините, я только что понял, что запутал вещи, упомянув, что есть несколько основных продуктов, совместно использующих компоненты - хотя они совместно используют компоненты, которые они не работают на тех же ПК. Мое беспокойство связано с тем фактом, что, поскольку компоненты, вероятно, будут меняться с каждым выпуском продукта (даже при том, что не было особого требования к обновлению компонента), тестирование будет пропускать некоторые незначительные изменения, которые были сделаны в компоненте и не связаны с конкретная работа, выполняемая над продуктом.