Как я могу настроить Team City для извлечения отдельного репо с помощью web.config и копирования его в извлеченный репо основного проекта перед попыткой сборки? - PullRequest
2 голосов
/ 05 марта 2012

Я пытаюсь настроить Team City для CI в моем проекте.В настоящее время у нас есть 9 разработчиков, работающих над проектом и использующих Mercurial для контроля версий.В настоящий момент все файлы web.config игнорируются в основном репо проекта, а файлы web.config расположены в отдельном репо, поэтому нам не нужно использовать дюжину преобразований.

Как настроить Team City/ MS Build, чтобы я мог оформить оба репозитория (пока это работает), а затем обновить репозитории и скопировать файл web.config в основную папку проекта перед сборкой?

Ответы [ 2 ]

3 голосов
/ 06 марта 2012

То, что вы на самом деле хотите сделать, это:
У каждого разработчика есть свой web.config, но вы хотите, чтобы сборка каждый раз использовала один и тот же «центральный» web.config и игнорировала собственные web.config версии разработчиков..
Правильно?

Если да, я бы сделал это по-другому:
Вы можете разрешить разработчикам использовать свои собственные web.config файлы по умолчанию, но все равно поставить "центральный" web.config в основной репозиторий проекта с другим именем файла (например, web.config.build.
. Затем вы можете использовать BeforeBuild (в файле .csproj) таким образом, чтобы он автоматически копировался в web.config когда файл web.config отсутствует (что должно происходить на сервере сборки, но не на машинах разработчика).

Прочтите этот ответ, чтобы увидеть, как я делаю нечто подобное:
как игнорировать файлы в печи / Mercurial, используя черепаху hg «которые являются частью хранилища»

0 голосов
/ 06 марта 2012

Вы можете создать второй корень VCS и сделать так, чтобы он «сливал» файлы при оформлении заказа на машине teamcity

  • создать второй корень VCS в teamcity
  • добавьте игнорирующие правила, чтобы соответствовать только вашему * .config файлу, при необходимости и поместите его в правильную папку

пример игнорирования шаблона с макушки головы:

-:* 
+:web.build.config=>website/

Но я бы посоветовал вам следовать подходу Кристиана Шпехта, потому что, когда у вас есть файл web.example.config, который вы копируете в web.config во время события перед сборкой, вы можете изменить его с новыми настройками. Это легко подойдет команде teamcity, поскольку вы можете «почистить» каталог (с помощью Swabra), чтобы удалить «старый» файл web.config и скопировать его из (нового) web.example.config

...