Share via


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 Escrevendo tarefas.

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 das tarefas 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.

Consulte também

Conceitos

Escrevendo tarefas

Tarefas embutidas do MSBuild

Outros recursos

Conceitos do MSBuild

MSBuild