Какой правильный синтаксис подстановки для копирования артефактов TeamCity в корень пути назначения?

У меня небольшая драма с синтаксисом подстановки в моей конфигурации артефакта TeamCity. Я хочу захватить каждый файл, соответствующий шаблону myproject. *. Dll из любой папки, и поместить каждую DLL в root из пути артефактов.

Вот что я получил сейчас:

**/obj/Debug/myproject.*.dll => /

Это захватывает все библиотеки DLL, но он помещает их в ту же структуру папок, что и источник, вместо того, чтобы заканчиваться "myproject.web.dll" в артефактах, которые я получаю "Web/obj/debug/myproject.web. длл".

Что мне здесь не хватает?

Ответ 1

Боюсь, вы не сможете сделать это легко. Вы должны собирать локальную локальную локальную сеть *.dll в одном месте, а не использовать правило артефактов TeamCity для копирования всех из них в корневой каталог.

Или вы можете ввести все пути вручную (без ** части)

Вот как это работает в TC.

Ответ 2

Я не уверен, что вы можете использовать корень артефакта, не копируя структуру. В документах указывается

Если целевой каталог опущен, файлы публикуются в корне строить артефакты.

Можете ли вы не просто использовать указанное имя папки say dist, это вызовет проблемы? Если да, то каковы они!

например

**/obj/Debug/myproject.*.dll => dist

Update - нашел дополнительную информацию в документах

Файлы будут опубликованы, сохраняя структура каталогов сопоставляются подстановочными знаками (каталоги согласованный "статическим" текстом, не будет создано). То есть TeamCity будет создавать каталоги, начиная с первое появление шаблона в шаблон.

Итак, если вы можете быть более явным, это может привести к более плоской структуре.