CruiseControl.Net Build Publisher - публикует только скомпилированные файлы
-
09-06-2019 - |
Вопрос
При настройке CruiseControl я добавил блок buildpublisher в задачи издателя:
<buildpublisher>
<sourceDir>C:\MyBuild\</sourceDir>
<publishDir>C:\MyBuildPublished\</publishDir>
<alwaysPublish>false</alwaysPublish>
</buildpublisher>
Это работает, но оно копирует все содержимое файла сборки, я хочу скопировать только библиотеки DLL и страницы .aspx, мне не нужен исходный код для публикации.
Кто-нибудь знает способ отфильтровать это, или мне нужно настроить задачу для запуска скрипта RoboCopy вместо этого?
Решение
Я поставил перед собой задачу сделать это.Я не знаю ни о каком способе сделать CruiseControl настолько конкретным.Обычно я просто связываю пакетный файл, чтобы скопировать его в задачу CC.net.
Другие советы
Я не уверен в веб-проекте, но для нашего приложения winforms вы можете получить TargetOutputs из задачи MSBuild следующим образом:
<MSBuild Projects="@(VSProjects)"
Properties="Configuration=$(Configuration)">
<Output TaskParameter="TargetOutputs" ItemName="BuildTargetOutputs"/>
</MSBuild>
а затем сделайте копию:
<Copy SourceFiles="@(BuildTargetOutputs)"
DestinationFolder="bin"
SkipUnchangedFiles="true" />
Не уверен, что такое TargetOutputs для веб-проекта, но для winforms и библиотек классов это .dll или .exe.
Издатель сборки по умолчанию в CC.NET не предоставляет способа сделать это.У вас есть несколько вариантов:
- Создайте свой собственный издатель сборки с желаемой функциональностью
- Создайте пользовательскую задачу NAnt / MSBuild
- Используйте технологию создания сценариев (RoboCopy, пакетный файл и т.д.), Чтобы создать файл сценария и запустить "Исполняемую" задачу для CC.NET или задачу "exec" для NAnt / MSBuild
Задачи cc.net PowerShell можно использовать для этого также.