CruiseControl.Net Build Publisher - публиковать только скомпилированные файлы

При настройке CruiseControl я добавил блок buildpublisher к задачам издателя:

<buildpublisher>
  <sourceDir>C:\MyBuild\</sourceDir>
  <publishDir>C:\MyBuildPublished\</publishDir>
  <alwaysPublish>false</alwaysPublish>
</buildpublisher> 

Это работает, но копирует все содержимое файла сборки, я только хочу скопировать страницы DLL и .aspx, мне не нужен исходный код для публикации.

Кто-нибудь знает способ фильтровать это, или мне нужно настроить задачу для запуска сценария RoboCopy вместо этого?

22.08.2008 17:53:24
4 ОТВЕТА
РЕШЕНИЕ

Я поставил задачу сделать это. Я не знаю ни одного способа сделать CruiseControl таким конкретным. Я обычно просто связываю пакетный файл, чтобы сделать копию задачи CC.net.

3
22.08.2008 18:05:24

Издатель сборки по умолчанию в CC.NET не предоставляет способа сделать это. У вас есть несколько вариантов:

  • Создайте своего собственного издателя сборки с желаемой функциональностью
  • Создайте пользовательскую задачу NAnt / MSBuild
  • Используйте технологию сценариев (RoboCopy, пакетный файл и т. Д.), Чтобы создать файл сценария и запустить задачу «Исполняемый» для CC.NET или задачу «exec» для NAnt / MSBuild
0
28.08.2008 16:05:16

Я не уверен с веб-проектом, но для нашего приложения 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.

1
28.08.2008 16:10:16

Для этого также может использоваться задача Powershell CC.Net.

0
11.08.2011 15:49:41