TFS 2010 — CI запускает ТОЛЬКО затронутые решения для рабочих областей

У меня есть определение сборки TFS 2010 с логикой рабочего процесса XAML и прочим.

Это определение непрерывной интеграции, и оно связано с несколькими решениями, включенными в одну и ту же папку сервера/рабочей области.

Я хочу, чтобы он компилировал и запускал тесты, но только решения, которые были затронуты рабочими пространствами. Чтобы было понятнее, например: я возвращаю файл .cs решения; Я хочу, чтобы определение компилировало ТОЛЬКО решение, содержащее изменение, и отбрасывало другие решения, если только набор изменений регистрации не включает файл, включенный в эти решения.

Я провел некоторое исследование IncrementalBuild и IncrementalGet (что может быть достигнуто с помощью параметра 'Clean Workspace' определения сборки), но это все еще компиляция ВСЕХ решений.

Есть ли способ сделать это, изменив рабочий процесс XAML или какой-либо специальный параметр?

Спасибо,


person Silvestre    schedule 05.04.2013    source источник


Ответы (1)


Насколько я знаю, вам придется разделить эти решения на разные сборки. Когда определение сборки запускается, оно обрабатывает все элементы для сборки. Теперь решение должно пропускать актуальные проекты, но само решение будет обработано.

person Christopher Painter    schedule 05.04.2013
comment
Ага; Я думаю, это единственный способ: я не мог найти простой способ добиться этого. Пометка вашего ответа как действительного, спасибо. - person Silvestre; 05.04.2013
comment
Единственный способ узнать, что решение изменило его, это построить его, Tfs не имеет представления о содержании решения. Когда сборка запускается путем регистрации, это связано с тем, что сопоставленный путь к рабочей области изменился в системе управления версиями. Параметр «Очистить рабочую область» влияет на то, как msbuild будет обрабатывать процесс, если есть предыдущий вывод, он пропустит части, где компиляция не требуется, как это сделала бы локальная студия. Единственная возможная ссылка из коробки — разделить решения для сборки в отдельные сборки и сопоставить их путь с рабочим пространством. В противном случае вам нужно будет добавить пользовательскую логику для фильтрации решений. - person drk; 08.04.2013