Tarefas do MSBuild
Precisa de uma plataforma de compilação a capacidade de executar qualquer número de ações durante o processo de compilação.MSBuild usa tarefas para realizar essas ações.Uma tarefa é uma unidade de código executável usado por MSBuild para executar operações atômicas de compilação.
Lógica de tarefa
The MSBuild Formato de arquivo de projeto XML totalmente não é possível executar operações em sua própria, então, lógica tarefa devem ser implementadas fora do arquivo de projeto de compilação.
A lógica de execução de uma tarefa é implementada sistema autônomo uma classe .NET que implementa o ITask interface, que é definido na Microsoft.Build.Framework espaço para nome.
Classe task também define os parâmetros de entrada e saídos disponível para a tarefa no arquivo de projeto.Todas as definíveis non-estático não-abstrata propriedades públicas expostas pela classe tarefa podem ser acessadas no arquivo de projeto por colocando um atributo correspondente com o mesmo nome sobre o Tarefa elemento.
Você pode escrever sua própria tarefa criando uma classe gerenciada que implementa o ITask interface. Para obter mais informações, consulte Como: Gravar uma tarefa.
Executar uma tarefa de um arquivo de projeto
Antes de executar uma tarefa em seu arquivo de projeto, primeiro você deve mapear o tipo no assembly que implementa a tarefa para o nome da tarefa com o UsingTask elemento.Isso permite que MSBuild sabe onde procurar a lógica de execução da tarefa quando ele encontra em seu arquivo de projeto.
Para executar uma tarefa em um MSBuild projeto de arquivo, crie um elemento com o nome da tarefa sistema autônomo um filho de um Target elemento. Se uma tarefa aceita parâmetros, eles são passados sistema autônomo atributos do elemento.
MSBuild item coleções e propriedades podem ser usadas sistema autônomo parâmetros. Por exemplo, o código a seguir chama o MakeDir tarefa e define o valor da Directories propriedade das MakeDir igual ao valor do objeto a BuildDir propriedade 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 nas propriedades para uso posterior ou itens.Por exemplo, o código a seguir chama o Copy a tarefa e armazena as informações da CopiedFiles propriedade na saída do SuccessfullyCopiedFiles coleção de itens.
<Target Name="CopyFiles">
<Copy
SourceFiles="@(MySourceFiles)"
DestinationFolder="@(MyDestFolder)">
<Output
TaskParameter="CopiedFiles"
ItemName="SuccessfullyCopiedFiles"/>
</Copy>
</Target>
Tarefas incluídas
MSBuild é fornecido com várias tarefas sistema autônomo Cópia, que copia arquivos, MakeDir, que cria sistema autônomo diretórios e CSC, que compila Visual C# arquivos de código-fonte. Para obter uma lista completa das tarefas disponível e informações de uso, consulte Referência de tarefas do MSBuild.