Хорошо, у нас есть довольно большое решение, содержащее около 8 различных проектов. Каждый из этих проектов зависит от различных сторонних сборок. Это решение находится в магистральной ветви управления исходным кодом. У нас также есть около 5 различных ответвлений от ствола.
Каков наилучший способ управления этими сторонними сборками? Когда вы добавляете ссылку на сборку, а затем щелкаете по ней и просматриваете окно свойств, я замечаю, что у нее есть жестко заданный путь к сборке.
Например: все наши ветви отображаются в "C: \ Code \". Таким образом, транк будет "C: \ Code \ Trunk", а ветвь будет "C: \ Code \ somebranch".
Если я создаю папку в «C: \ Code \ Trunk» под названием «Сборки», а затем отбрасываю все наши сторонние сборки в эту папку, а затем добавляю ссылку на сборку, есть ли относительная ссылка на сборку? Если щелкнуть добавленную сборку, я вижу, что свойство пути, выделенное серым цветом, говорит «C: \ Code \ Trunk \ Assemblies \ someassembly.dll».
Что произойдет, если я потом разветвлюсь из ствола? Будет ли «somebranch» по-прежнему иметь ссылку на «C: \ Code \ Trunk \ Assemblies \ someassembly.dll» или тогда будет ссылка «C: \ Code \ somebranch \ Assemblies \ someassembly.dll»?
В настоящее время у нас фактически есть ветвь в управлении исходным кодом, называемая "Сборки", которая, как и любая другая ветвь, отображается в "C: \ Code \". Поэтому все ветви с проектами, ссылающимися на сборки, имеют ссылки на «C: \ Code \ Assemblies \ someassembly.dll», независимо от того, в какой ветви находится проект, путь будет одинаковым.
К сожалению, это означает, что вам нужно получить последнюю версию ветки, в которой вы работаете, и ветку сборок, чтобы успешно построить решение.
Подводя итог:
Как добавить ссылку относительно решения? (т. е. добавьте ссылку на C: \ Code \ Trunk \ Assemblies \ someassembly.dll и укажите этот путь относительно проекта, который его добавил, чтобы при создании ветви он ссылался на папку с разветвленными сборками, а не на папку сборок в стволе. Или эта ссылка уже относительная?
Каковы другие рекомендуемые стратегии для управления сторонними сборками?