Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Uma plataforma de compilação precisa da capacidade de executar qualquer número de ações durante o processo de compilação. O MSBuild usa tarefas para executar essas ações. Uma tarefa é uma unidade de código executável usada pelo MSBuild para executar operações de compilação atômica.
Lógica da tarefa
O formato de arquivo de projeto XML do MSBuild não pode executar totalmente operações de compilação por conta própria, portanto, a lógica da tarefa deve ser implementada fora do arquivo de projeto.
A lógica de execução de uma tarefa é implementada como uma classe .NET que implementa a ITask interface, que é definida no Microsoft.Build.Framework namespace.
A classe de tarefa também define os parâmetros de entrada e saída disponíveis para a tarefa no arquivo de projeto. Todas as propriedades públicas configuráveis, não estáticas, não abstratas, expostas pela classe task podem receber valores no arquivo de projeto, colocando um atributo correspondente com o mesmo nome no elemento Task e definindo seu valor, conforme mostrado nos exemplos mais adiante neste artigo.
Você pode escrever sua própria tarefa criando uma classe gerenciada que implementa a ITask interface. Para obter mais informações, consulte Escrita de tarefas.
Executar uma tarefa a partir de um arquivo de projeto
Antes de executar uma tarefa em seu arquivo de projeto, você deve primeiro mapear o tipo no assembly que implementa a tarefa para o nome da tarefa com o elemento UsingTask . Isso permite que o MSBuild saiba onde procurar a lógica de execução da sua tarefa quando a encontrar no arquivo de projeto.
Para executar uma tarefa em um arquivo de projeto MSBuild, crie um elemento com o nome da tarefa como filho de um Target elemento . Se uma tarefa aceitar parâmetros, eles serão passados como atributos do elemento .
As listas de itens e propriedades do MSBuild podem ser usadas como parâmetros. Por exemplo, o código a seguir chama a MakeDir tarefa e define o Directories valor da propriedade do MakeDir objeto igual ao valor da BuildDir propriedade:
<Target Name="MakeBuildDirectory">
<MakeDir
Directories="$(BuildDir)" />
</Target>
As tarefas também podem retornar informações para o arquivo de projeto, que pode ser armazenado em itens ou propriedades para uso posterior. Por exemplo, o código a seguir chama a Copy tarefa e armazena as CopiedFiles informações da propriedade output na SuccessfullyCopiedFiles lista de itens.
<Target Name="CopyFiles">
<Copy
SourceFiles="@(MySourceFiles)"
DestinationFolder="@(MyDestFolder)">
<Output
TaskParameter="CopiedFiles"
ItemName="SuccessfullyCopiedFiles"/>
</Copy>
</Target>
Tarefas incluídas
O MSBuild é fornecido com muitas tarefas, como Copy, que copia arquivos, MakeDir, que cria diretórios, e Csc, que compila arquivos de código-fonte C#. Para obter uma lista completa de tarefas disponíveis e informações de utilização, consulte a referência de tarefas em .
Tarefas substituídas
O MSBuild procura tarefas em vários locais. O primeiro local é em arquivos com a extensão .OverrideTasks armazenada no diretório MSBuild. As tarefas nesses arquivos substituem quaisquer outras tarefas com os mesmos nomes, incluindo tarefas no arquivo de projeto. O segundo local está no arquivo de projeto e suas importações. Se a tarefa não estiver definida no projeto, ela será pesquisada nas tarefas padrão do MSBuild que são definidas em um .tasks arquivo no diretório MSBuild.