Partilhar via


Visão geral do MSBuild

The Mecanismo de compilação Microsoft (MSBuild) é a nova plataforma de compilação da Microsoft e Visual Studio. MSBuild é completamente transparente em relação a como ele processa e compilação s software, permitindo que os desenvolvedores orquestrar e compilação produtos em compilação ambientes de laboratório em que Visual Studio não é instalado. Este tópico fornece uma visão geral breve dos:

  • Os elementos básicos de um MSBuild arquivo de projeto.

  • How MSBuild é usada para compilação projetos.

  • Recursos avançados de MSBuild.

  • How Visual Studio usa MSBuild para construir projetos.

Arquivo de projeto

MSBuild apresenta um novo formato de arquivo XML-based projeto simples de entender, fácil de estender e totalmente suportado pela Microsoft. The MSBuild formato de arquivo de projeto permite aos desenvolvedores descrever totalmente que itens precisam ser criado, bem sistema autônomo eles precisam ser criados com diferentes plataformas e configurações. Além disso, o formato de arquivo de projeto permite aos desenvolvedores autor reutilizável compilação regras que podem ser fatoradas em separe arquivos de modo que compilação s podem ser executadas consistentemente entre diferentes projetos dentro de seu produto.As seções a seguir descrevem alguns dos elementos básicos do MSBuild formato de arquivo do projeto.

Itens

Os itens representam entradas no sistema de compilação e são agrupados em conjuntos de item com base em seus nomes de coleção definida pelo usuário.Essas coleções de item podem ser usadas sistema autônomo parâmetros para tarefas, que usa sistema autônomo itens individuais contidos na coleção para executar sistema autônomo etapas do processo de compilação.

Itens são declarados no arquivo de projeto criando um elemento com o nome da coleção item sistema autônomo um filho de um ItemGroup elemento. Por exemplo, o código a seguir cria uma coleção de item denominada Compile, que inclui dois arquivos.

<ItemGroup>
    <Compile Include = "file1.cs"/>
    <Compile Include = "file2.cs"/>
</ItemGroup>

Você faz referência item coleções em todo o arquivo de projeto com a sintaxe @ (ItemCollectionName). Por exemplo, você referenciar a coleção de itens no exemplo acima com @(Compile).

Itens podem ser declaradas usando caracteres curinga e podem conter metadados adicionais para cenários mais avançados de compilação.Para obter mais informações sobre itens, consulte Itens do MSBuild.

Propriedades

Propriedades representam pares chave/valor que podem ser usados para configurar compilações.Os itens e as propriedades diferem das seguintes maneiras:

  • Itens são armazenados em coleções, enquanto as propriedades contêm um único valor escalar.

  • Itens não podem ser removidos de coleções de item, enquanto propriedades podem ter seus valores alteradas depois que eles são definidos.

  • Itens podem conter metadados e podem usar o %(ItemMetadata) notação, enquanto propriedades não podem.

Propriedades são declaradas através da criação de um elemento com o nome da propriedade sistema autônomo um filho de um PropertyGroup elemento. Por exemplo, o código a seguir cria uma propriedade chamada BuildDir com um valor de Build.

<PropertyGroup>
    <BuildDir>Build</BuildDir>
</PropertyGroup>

Fazer referência a propriedades em todo o arquivo de projeto com a sintaxe $(PropertyName). Por exemplo, fazer referência à propriedade no exemplo acima com $(BuildDir). Para obter mais informações sobre propriedades, consulte Propriedades do MSBuild.

Tarefas

Tarefas são unidades reutilizáveis de código executável usado por MSBuild projetos para realizar operações de compilação. Por exemplo, uma tarefa pode compilar arquivos de entrada ou executar uma ferramenta externa.Uma vez criado, as tarefas podem ser compartilhadas e reutilizadas por diferentes desenvolvedores em diferentes projetos.

A lógica de execução de uma tarefa é escrita em código gerenciado e mapeada para MSBuild com o UsingTask elemento.Você pode escrever sua própria tarefa criando um tipo gerenciado que implementa o ITask interface. Para obter mais informações sobre a criação de tarefas, consulte Como: Gravar uma tarefa.

MSBuild é fornecido com várias tarefas comuns, sistema autônomo Cópia, que copia arquivos, MakeDir, que cria sistema autônomo diretórios e CSC, que compila arquivos de código-fonte translation from VPE for Csharp Visual.Para obter uma lista completa das tarefas disponível e informações de uso, consulte Referência de tarefas do MSBuild.

Executar uma tarefa em um MSBuild arquivo de projeto, criando um elemento com o nome da tarefa sistema autônomo um filho de um Target elemento. sistema autônomo tarefas normalmente aceitam parâmetros, que 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 passa o valor da BuildDir propriedade declarada no exemplo anterior.

<Target Name="MakeBuildDirectory">
    <MakeDir
        Directories="$(BuildDir)" />
</Target>

Para obter mais informações sobre tarefas, consulte Tarefas do MSBuild.

Destinos

Destinos agrupar tarefas em uma determinada ordem e expõem seções do arquivo de projeto sistema autônomo pontos de entrada em processo de compilação.Destinos geralmente são agrupados em seções lógicas para permitir expansão e aumentar a legibilidade.As etapas de criação invadir a muitos destinos permite que você chamar uma parte do processo de compilação a partir de outros destinos sem precisar copiar essa seção de código para cada destino.Por exemplo, se vários pontos de entrada para o processo de compilação exigem referências a ser criado, você pode criar um destino que constrói referências e execute destino de cada ponto de entrada necessário.

Destinos são declarados no arquivo de projeto com o Target elemento. Por exemplo, o código a seguir cria um destino chamado Compile, quais chamadas, em seguida, o Csc tarefa com a coleção de item declarada no exemplo anterior.

<Target Name="Compile">
    <Csc Sources="@(Compile)" />
</Target>

Em cenários mais avançados destinos podem descrever as relações entre cada Outros e realizar análises de dependência, que permite que todo seções do processo de compilação a ser ignorado se o destino está atualizado.Para obter mais informações no público-alvo, consulte Destinos do MSBuild.

Criando com o MSBuild

Executar o MSBuild a partir da linha de comando, passando um arquivo de projeto para MSBuild.exe com as opções de linha de comando apropriadas. Opções de linha de comando permitem que você defina propriedades, executar metas específicas e especifique registradores.Por exemplo, você usaria a seguinte sintaxe de linha de comando para compilação o arquivo MyProj.proj com o Configuration conjunto de propriedades como Debug.

MSBuild.exe MyProj.proj /property:Configuration=Debug

Para obter mais informações sobre o MSBuild Opções de linha de comando, consulte Referência de linha de comando do MSBuild.

Observação de segurança:

Antes de criar um projeto baixado, determine a confiabilidade do código.MSBuild arquivos de projeto têm a capacidade de executar tarefas que podem danificar seu sistema.

Conceitos avançados

MSBuild pode ser usado para operações mais avançadas durante compilações, sistema autônomo logon erros, avisos e mensagens do console ou outros agentes de registrar registrar registrar em log, executar análise de dependência em destinos e o lote de tarefas e destinos de metadados de item. Para obter mais informações sobre esses conceitos avançados, consulte MSBuild conceitos avançados.

O Visual Studio Integration

Visual Studio usa o MSBuild formato de arquivo de projeto para armazenar informações de compilação sobre projetos gerenciado. Configurações de projeto adicionada e alterada por meio de Visual Studio são refletidas na. * proj arquivo gerado para cada projeto. Visual Studio usa uma instância do host MSBuild para construir projetos gerenciados, que significa que um projeto gerenciado pode ser criado Visual Studio e do comando de linha (ainda sem Visual Studio instalado), com resultados idênticos. Para obter mais informações sobre como Visual Studio usa MSBuild, consulte MSBuild conceitos avançados.

Consulte também

Conceitos

MSBuild

Destinos do MSBuild

Tarefas do MSBuild

Itens do MSBuild

Propriedades do MSBuild

envio em lote MSBuild

Visão geral do registrar em log no MSBuild

MSBuild transformações

O Visual Studio Integration (MSBuild)

Referência de esquema do arquivo de projeto do MSBuild

Outros recursos

Referência do MSBuild

Referência de tarefas do MSBuild