Pergunta

Ao configurar o CruiseControl, adicionei um bloco buildpublisher às tarefas do editor:

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

Isso funciona, mas copia todo o conteúdo do arquivo da compilação, só quero copiar as DLLs e as páginas .aspx, não preciso do código fonte para ser publicado.

Alguém sabe uma maneira de filtrar isso ou preciso configurar uma tarefa para executar um script RoboCopy?

Foi útil?

Solução

Eu configurei uma tarefa para fazer isso.Não conheço nenhuma maneira de tornar o CruiseControl tão específico.Normalmente, apenas encadeio um arquivo em lote para fazer a cópia para a tarefa CC.net.

Outras dicas

Não tenho certeza com um projeto da web, mas para nosso aplicativo winforms, você pode obter TargetOutputs da tarefa MSBuild da seguinte forma:

<MSBuild Projects="@(VSProjects)"
  Properties="Configuration=$(Configuration)">
  <Output TaskParameter="TargetOutputs" ItemName="BuildTargetOutputs"/>
</MSBuild>

e depois faça uma cópia:

<Copy SourceFiles="@(BuildTargetOutputs)" 
  DestinationFolder="bin"
  SkipUnchangedFiles="true" />

Não tenho certeza do que são TargetOutputs para um projeto da web, mas para winforms e bibliotecas de classes, é .dll ou .exe.

O editor de compilação padrão no CC.NET não fornece uma maneira de fazer isso.Você tem poucas opções:

  • Crie seu próprio editor de build com a funcionalidade desejada
  • Crie uma tarefa NAnt/MSBuild personalizada
  • Use uma tecnologia de script (RoboCopy, arquivo em lote, etc.) para criar um arquivo de script e executar uma tarefa "Executável" para CC.NET ou uma tarefa "exec" para NAnt/MSBuild

Uma tarefa CC.Net Powershell também pode ser usada para isso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top