Моя проблема сводится к этому базовому случаю: у нашего решения есть два проекта, A и B, которые проект C затем включает в процесс сборки.
Когда кто-то подталкивает к проекту A или B, Дженкинс строит проект с использованием MSBuild, архивирует артефакт, а затем запускает сборку C.
Когда начинается C, у него есть четыре задачи «Копировать артефакты», которые нужно запустить: сначала он копирует артефакты из A в. \ A \ obj \ Release \, затем копирует те же артефакты в. \ A \ bin \ Release. Затем он повторяется для проекта B. Затем он сам себя строит.
Правильно: для каждого проекта, на который опирается C, необходимо дважды запускать Copy Artifacts, иначе MSBuild обнаружит, что что-то устарело и все построено с нуля.
Есть ли более простой способ сделать это? Могу ли я передать в MSBuild параметр (или сконфигурировать .csproj), который говорит: «только соберите этот проект, допустим, что остальные двоичные файлы проекта актуальны, независимо от метки времени»? Есть ли лучший плагин, который позаботится об этом для меня?
Это действительно раздражает (и сбивает с толку) в нашем реальном случае, когда у нас есть почти 20 различных проектов с многоуровневыми зависимостями между ними.