Удалить структуру каталогов в артефактах Teamcity

Я использую Teamcity для создания разных пакетов и хочу сохранить эти Пакеты как Артефакты. Мой путь артефакта в TeamCity следующий:

%system.teamcity.build.workingDir%\**\Release**/*.wsp => Solution 

Теперь TeamCity собирает все WSP файлы в любом каталоге релизов после правильной сборки. Но он сохраняется, включая все подкаталоги, такие как:

How the Files are being offered

Мне нужен только файл .wsp непосредственно под "решением" без дерева каталогов.

Ответ 1

Из документов TeamCity:

wildcard - публиковать файлы, соответствующие шаблону шаблонов Ant -like ( "и Подстановочные знаки" * "поддерживаются только). Подстановочный знак должен представлять собой путь к каталогу сборки сборки. Файлы будут опубликовано, сохраняя структуру каталогов, соответствующих wildcard (каталоги, соответствующие тексту" статический", не будут созданы). То есть TeamCity создаст каталоги, начиная с первого появление шаблона в шаблоне.

http://confluence.jetbrains.net/display/TCD65/Configuring+General+Settings#ConfiguringGeneralSettings-artifactPaths

В вашей сборке script (или дополнительном финальном этапе сборки) вам придется скопировать необходимые файлы в одну папку и опубликовать эту папку как Artifacts

Ответ 2

Вместо того, чтобы копировать как @manojlds, вы можете что-то добиться, изменив OutputPath в файле .csproj или загрузив атрибут OutDir при создании .sln(если вы есть). Будьте предупреждены, что ни один из этих подходов не идеален - например, TeamBuild (сервер CI в Visual Studio ALM Tooling) перенаправляет все в один каталог, что может вызвать полный беспорядок и работает только в самых простых случаях.

Ответ 3

У меня была эта проблема, когда я хотел собрать различные файлы установки из подкаталогов. Добавление бегуна PowerShell в качестве шага сборки довольно сильно и прекрасно решает...

get-childitem -Recurse -Include *.wsp | Move-Item -destination .

Это приведет их к корню до того, как TeamCity посмотрит на артефакты, где основные пути артефакта, такие как *.wsp, могут поднять его для окончательного вывода.