Как это сделать:Ссылайтесь на внешние SLN-файлы с помощью TeamCity
-
06-07-2019 - |
Вопрос
Я новичок в TeamCity, и у нас есть ряд общих проектов под управлением версиями, на которые затем ссылаются непосредственно в соответствующих проектах, т. е.:
Common
branches
tags
trunk
CommonProject
CommonProject.csproj
Common.sln
ProjectX
branches
tags
trunk
ProjectX.sln
В результате ссылка на "CommonProject.csproj" в "ProjectX.sln" представляет собой что-то вроде ....\Common runk\CommonProject\CommonProject.csproj, который хорош в нашей среде разработки, но когда дело доходит до TeamCity, он падает, говоря, что не может найти путь "....\Common\магистраль\CommonProject\CommonProject.csproj"
Как лучше всего обойти эту проблему?Я попытался добавить CommonProject в TeamCity в качестве зависимости, но, похоже, он по-прежнему не хочет играть в мяч...
Спасибо
Тим
Решение
Мы решаем эту проблему с помощью Externals в Subversion, который позволяет вам извлекать данные из другого (битного) репозитория.
Затем, когда мы создаем решения, у нас есть эти общие проекты, сгруппированные в одни и те же папки с конкретным решением для проекта, т. е.когда мы проверяем материал, у нас есть:
Solution1
+---Project1
+---Project2
+---Project3
+---Common1
+---Common2
Затем, отдельно:
Solution2
+---ProjectA
+---ProjectB
+---ProjectC
+---Common1
+---Common2
Поскольку у нас есть внешние компоненты и структура каталогов / папок, настроенная таким образом, теоретически вы должны иметь возможность извлекать (или экспортировать) "решение" в пустой каталог и успешно создавать его с нуля (при условии установки всех необходимых инструментов), и, следовательно, TeamCity (или что там у вас на сервере непрерывной интеграции) также должен иметь возможность создавать его с нуля.На самом деле, еще до того, как мы начали использовать TeamCity, у меня было это в качестве политики, но ценность становится понятнее, как только вы начинаете выполнять непрерывную интеграцию.
Соответствующая часть Красной книги Subversion находится здесь: Определения внешних элементов