Как это сделать:Ссылайтесь на внешние SLN-файлы с помощью TeamCity

StackOverflow https://stackoverflow.com/questions/1633526

  •  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 находится здесь: Определения внешних элементов

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top