2016-09-01 3 views
0

У меня есть несколько решений и общие ссылки для всех моих решений в источнике моего TeamProject, как показано ниже.Проблемы с триггером непрерывной интеграции в TFS 2012

TestTeamProject 
    Source 
     SolutionA 
     SolutionB 
     SolutionC 
     References 

Все решения используют Referneces, и каждое решение имеет отдельное определение сборки. Всякий раз, когда сборка запускается, пользовательский актив запускает проверку своих собственных двоичных файлов в папке «Ссылки» (EX: Если инициировано построение определения, настроенное для SOlution A, оно копирует выходные библиотеки DLL в папку «Ссылки»), поскольку каждое решение имеет зависимости от друг друга.

Теперь я попытался включить триггер непрерывной интеграции в определении сборки решения А, и он входит в цикл и запускает бесконечные сборки.

Причина: Так как я есть ссылки в настройках источника билда Определение раствора А, когда-либо сборка завершена, и ссылки проверяются в моей деятельности, она снова вызывая CI сборки

Можно ли каким-либо образом ограничить это поведение, все еще включив функцию триггера CI? Существует ли расширение, которое можно использовать для использования фильтров для путей управления источниками при настройке сборок CI?

ответ

2

Вместо того, чтобы иметь двоичные файлы для сборки, вы должны использовать пакеты NuGet и ссылаться на свои двоичные зависимости как пакеты NuGet.

+0

Да Даниэль это правильно, но теперь, когда в источнике есть много проектов, в которых уже используются ссылки, было бы сложнее изменить это и даже настроить сервер NuGet для управления пакетами. – Pramod

0

Вы можете попытаться использовать скрытый в исходных настройках - рабочие папки, чтобы выбрать пути управления версиями, которые вы хотите включить и исключить. (Примечание:. Предлагает вам убедиться, что эти фильтры совместимы с отображениями рабочего пространства TFVC)

Для вашей ситуации вы можете облачены ссылка папки enter image description here

И так как вы используете DLL в ссылках. Лучший способ, как Даниэль предлагает использовать систему управления пакетами, такую ​​как Nuget для размещения и развертывания ваших зависимостей, может устранить их из исходного управления и позволить вам избежать бесконечного цикла.

+0

Cloaking не удаляет мою сборку, поскольку мне нужно ссылки для копирования на сервер сборки. Поскольку построенное решение зависит от двоичных файлов в папке «Ссылки». Есть ли способ, в котором я мог бы обновить встроенное поведение Trigger (In Build Definition) и настроить его для своей цели и исключить папки управления источником, чтобы не запускать сборку? – Pramod

+0

Не бойтесь, вы не можете настроить триггер CI в TFS. Более того, вы неправильно поняли, что я имел в виду. Cloaking - это первый шаг, и, наконец, вам все равно нужно использовать систему управления пакетами, такую ​​как Nuget, для размещения и развертывания ваших зависимостей. Не рекомендуется проверять dll в исходном управлении TFS («обычно используйте Nuget и GAC»), чтобы избежать таких ситуаций (бесконечный цикл). –