Tarefas do MSBuild
Uma plataforma de compilação precisa da capacidade de executar qualquer número de ações durante o processo de compilação.usa tarefas deMSBuild executar essas ações.Uma tarefa é uma unidade de código executável usada por MSBuild para executar operações atômicas de compilação.
Lógica de tarefas
O formato de arquivo de projeto de MSBuild XML não pode totalmente executar operações de compilação na própria, o que a lógica de tarefa deve ser implementado fora do arquivo de projeto.
A lógica de execução de uma tarefa é implementada como uma classe .NET que implementa a interface de ITask , que é definido no namespace de Microsoft.Build.Framework .
A classe também define a tarefa de entrada e parâmetros de saída disponíveis para a tarefa no arquivo de projeto.Todas as propriedades configuráveis públicas não abstratas não-estático expostos pela classe de tarefas podem ser acessadas no arquivo de projeto colocando um atributo correspondente com o mesmo nome no elemento de tarefa .
Você pode escrever sua própria tarefa criando uma classe gerenciada que implementa a interface de ITask .Para obter mais informações, consulte Escrita de tarefa.
Executar uma tarefa um Arquivo de projeto
Antes de executar uma tarefa no arquivo de projeto, primeiro você deve mapear o tipo no assembly que implementa a tarefa para o nome da tarefa com o elemento de UsingTask .Isso permite MSBuild saber onde procurar a lógica de execução da sua tarefa quando encontra no arquivo de projeto.
Para executar uma tarefa em um arquivo de projeto de MSBuild , crie um elemento com o nome da tarefa como um filho de um elemento de Target .Se uma tarefa aceita parâmetros, elas são passados como atributos do elemento.
as listas e propriedades de item deMSBuild podem ser usadas como parâmetros.Por exemplo, o código a seguir chama a tarefa de MakeDir e definir o valor da propriedade de Directories do objeto de MakeDir igual ao valor da propriedade de BuildDir declarada no exemplo anterior.
<Target Name="MakeBuildDirectory">
<MakeDir
Directories="$(BuildDir)" />
</Target>
As tarefas também podem retornar informações para o arquivo de projeto, que pode ser armazenado nos itens ou em propriedades para uso posterior.Por exemplo, o código a seguir chama a tarefa de Copy e armazena informações de propriedade de saída de CopiedFiles na lista de itens de SuccessfullyCopiedFiles .
<Target Name="CopyFiles">
<Copy
SourceFiles="@(MySourceFiles)"
DestinationFolder="@(MyDestFolder)">
<Output
TaskParameter="CopiedFiles"
ItemName="SuccessfullyCopiedFiles"/>
</Copy>
</Target>
Tarefas envolvidas
o vem deMSBuild com várias tarefas como Copiar, que copia arquivos, MakeDir, que cria pastas, e CSC, que compila arquivos de código-fonte de Visual C# .Para obter uma lista completa das tarefas disponíveis e informações de uso, consulte Referência de tarefa do MSBuild.
tarefas substituídas
MSBuild procurar tarefas em vários locais.O primeiro local está em arquivos com a extensão .OverrideTasks armazenadas nos diretórios do .NET Framework.As tarefas em esses arquivos substituem quaisquer outras tarefas com os mesmos nomes, incluindo tarefas no arquivo de projeto.O segundo local está em arquivos com a extensão. Tarefas nas pastas do .NET Framework.Se a tarefa não for encontrada em nenhum de esses locais, a tarefa no arquivo de projeto é usada.