MSBuild

O Mecanismo de compilação Microsoft (MSBuild) é uma plataforma para a criação de aplicativos. MSBuildFornece um esquema XML para um arquivo de projeto que controla como a plataforma de compilação processa e compila software. Embora MSBuild é integrado ao Visual Studio, não é dependente dela. Os desenvolvedores podem coordenar e desenvolver produtos em ambientes onde Visual Studio não está instalado.

Este tópico fornece uma visão geral do MSBuild:

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

  • Como usar o MSBuild para construir projetos.

  • Os recursos avançados do MSBuild.

  • Como Visual Studio usa MSBuild para construir projetos.

  • Para obter um tutorial de Introdução, consulte Walkthrough: Usando o MSBuild.

Arquivo de projeto

MSBuildusa um formato de arquivo de projeto baseado em XML é simples e extensível. O MSBuild formato de arquivo de projeto permite que os desenvolvedores que descrevem os itens que estão a ser criado, e também como eles devem ser criadas para diferentes sistemas operacionais e configurações. Além disso, o formato de arquivo de projeto permite regras de compilação reutilizável de autor de desenvolvedores que podem ser feitas em arquivos separados para que as compilações podem ser executadas consistentemente entre diferentes projetos no produto.

As seções a seguir descrevem alguns dos elementos básicos da MSBuild formato de arquivo de projeto. Para obter um tutorial sobre como criar um arquivo de projeto básico, consulte Walkthrough: Criando um Arquivo de projeto MSBuild a partir do zero.

Propriedades

Propriedades representam os pares chave/valor que podem ser usados para configurar as compilações. Propriedades são declaradas com a criação de um elemento que tenha o nome da propriedade como um filho de um PropertyGroup elemento. Por exemplo, o código a seguir cria uma propriedade chamada BuildDir que tem um valor de Build.

<PropertyGroup>

<BuildDir>Build</BuildDir>

</PropertyGroup>

Propriedades podem ser referenciadas em todo o arquivo de projeto, usando a sintaxe $(PropertyName). Por exemplo, a propriedade no exemplo seria referenciada por meio de $(BuildDir). Para obter mais informações sobre propriedades, consulte Propriedadesdo MSBuild.

Itens

Os itens são entradas no sistema de compilação e geralmente representam arquivos. Itens são agrupados em tipos de item, com base em nomes de item definido pelo usuário. Esses tipos de item podem ser usados como parâmetros para as tarefas, usam os itens individuais para executar as etapas do processo de compilação.

Itens são declarados no arquivo de projeto, criando um elemento que tenha o nome do tipo item como um filho de um ItemGroup elemento. Por exemplo, o código a seguir cria um tipo de item chamado Compile, que inclui dois arquivos.

<ItemGroup>

<Compile Include = "file1.cs"/>

<Compile Include = "file2.cs"/>

</ItemGroup>

Tipos de item podem ser referenciados em todo o arquivo de projeto, usando a sintaxe @ (ItemType). Por exemplo, o tipo de item no exemplo seria referenciado por meio de @(Compile).

Os itens podem ser declarados 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.

Tarefas

As tarefas são unidades do executável de código que MSBuild projetos usam para realizar operações de compilação. Por exemplo, uma tarefa pode compilar arquivos de entrada ou executar uma ferramenta externa. Tarefas que podem ser reutilizadas e podem ser compartilhados por diferentes desenvolvedores em diferentes projetos.

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

MSBuildinclui tarefas comuns que podem ser modificados para atender às suas necessidades, por exemplo, Copy, que copia arquivos, MakeDir, que cria os diretórios, e Csc, que compila os arquivos de código-fonte Visual C#. Para obter uma lista de tarefas disponíveis juntamente com informações de uso, consulte Referência de tarefa do MSBuild.

Uma tarefa é executada em um MSBuild o arquivo de projeto, criando um elemento que tenha o nome da tarefa como um filho de um destino elemento. Tarefas normalmente aceitam parâmetros, que são passados como atributos do elemento. Ambos MSBuild Propriedades e os itens podem ser usados como parâmetros. Por exemplo, o seguinte código chama o MakeDir de tarefas e passa o valor da BuildDir propriedade que foi 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 exponham as seções do arquivo do projeto como pontos de entrada ao processo de compilação. Geralmente, os destinos são agrupados em seções lógicas para aumentar a legibilidade e permitem a expansão. Invadir as etapas de criação de destinos permite que você chamar uma parte do processo de compilação de outros destinos, sem copiar a seção de código em cada destino. Por exemplo, se vários pontos de entrada ao processo de compilação exigem referências a ser criado, pode criar um destino que constrói referências e executar o destino de cada ponto de entrada, onde é necessária.

Destinos são declarados no arquivo de projeto usando o destino elemento. Por exemplo, o código a seguir cria um destino chamado Compile, quais chamadas, em seguida, o Csc tarefa que possui a lista de item que foi declarada no exemplo anterior.

<Target Name="Compile">

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

</Target>

Nos cenários mais avançados, os destinos podem ser usados para descrever as relações entre si e executar a análise de dependência para que as seções inteiras do processo de compilação podem ser ignoradas se o destino está atualizado. Para obter mais informações sobre destinos, consulte Destinos do MSBuild.

Elementos condicionais

Muitos elementos do MSBuild são definidos condicionalmente, ou seja, o Condition atributo será exibida no elemento. O conteúdo dos elementos condicionais é ignorado, a menos que a condição for avaliada como "verdadeiro". Por exemplo,

<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>

significa "se o Configuration propriedade não foi definido ainda, defina-o e dê a ele o valor Debug".

Quase todos os elementos do MSBuild podem ter um Condition atributo. Para obter mais informações, consulte Condições do MSBuild.

Maiúsculas/minúsculas

O esquema XML do MSBuild segue as regras do XML. Os nomes de elemento e atributo diferenciam maiúsculas de minúsculas. No entanto, propriedade, item e nomes de metadados não diferenciam maiúsculas de minúsculas no modelo de objeto do MSBuild. Considere o seguinte grupo de itens.

<ItemGroup>

<Compile Include="one.cs" />

<comPile Include="two.cs" />

</ItemGroup>

Isso cria o tipo de item Compile, ou comPile, ou qualquer outra variação case e concede a ele o valor "one.cs;two.cs".

Usando o MSBuild em um Prompt de comando

Para executar o MSBuild em um prompt de comando, passe um arquivo de projeto MSBuild. exe, juntamente com as opções de linha de comando apropriado. Opções de linha de comando permitem que você defina propriedades, executar a destinos específicos e definir outras opções que controlam o processo de compilação. Por exemplo, você usaria a seguinte sintaxe de linha de comando para criar o arquivo MyProj.proj com o Configuration propriedade definida como Debug.

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

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

Observação de segurançaObservação sobre segurança

Antes de fazer o download de um projeto, determine a confiabilidade do código.

Conceitos avançados

MSBuildtambém pode ser usado para executar outras operações, por exemplo, log de erros, avisos e mensagens para o console ou outros dispositivos de saída, realizando análise de dependência em tarefas e destinos de metadados de item de destinos e de lotes. Para obter mais informações sobre esses conceitos avançados, consulte Conceitos Avançado do MSBuild.

Usando o MSBuild Visual Studio

Visual Studiousa a MSBuild formato de arquivo de projeto para armazenar informações de compilação sobre projetos gerenciados. Configurações que são adicionadas ou alteradas por meio do projeto de Visual Studio interface são refletidas na. * proj arquivo gerado para cada projeto. Visual Studiousa uma instância hospedada do MSBuild criar gerenciado projetos. Isso significa que um projeto gerenciado pode ser criado Visual Studio, ou em um prompt de comando (mesmo se Visual Studio não está instalado), e os resultados serão idênticos.

Para obter um tutorial sobre como usar o MSBuild Visual Studio, consulte Walkthrough: Usando o MSBuild.

Multitargeting

Usando o Visual Studio, você pode compilar um aplicativo seja executado em qualquer uma das várias versões do.NET Framework. Por exemplo, você pode compilar um aplicativo em execução na.NET Framework versão 2.0 e compilar o mesmo aplicativo em execução na.NET Framework versão 4. A capacidade de compilar a mais de um framework é denominada multitargeting.

Estes são alguns dos benefícios da multitargeting:

  • Você pode desenvolver aplicativos destinados a versões anteriores do.NET Framework, por exemplo, versões 2.0, 3.0 e 3.5.

  • Você pode direcionar estruturas diferente de.NET Framework, por exemplo, a estrutura do Silverlight.

  • Você pode direcionar um framework profile, que é um subconjunto predefinido de uma estrutura de destino.

  • Se quaisquer service packs para o.NET Framework versão 4 são lançados, pode direcioná-los.

  • Multitargeting garante que um aplicativo usa apenas a funcionalidade está disponível no framework de destino.

  • Para obter mais informações, consulte Multitargeting do MSBuild.

Tópicos relacionados

Título

Descrição

Walkthrough: Criando um Arquivo de projeto MSBuild a partir do zero

Mostra como criar um arquivo de projeto básico incrementalmente, usando somente o texto, editor.

Walkthrough: Usando o MSBuild

Introduz os blocos de construção do MSBuild e mostra como escrever, manipular e depurar projetos do MSBuild sem fechar o ambiente de desenvolvimento integrado (IDE) do Visual Studio.

Conceitos do MSBuild

Apresenta os quatro blocos de construção do MSBuild: Propriedades, itens, destinos e tarefas.

Itens do MSBuild

Descreve os conceitos gerais do MSBuild o arquivo de formato e como as peças se encaixam.

Propriedadesdo MSBuild

Apresenta as propriedades e coleções de propriedade. As propriedades são compilações de pares chave/valor que podem ser usados para configurar.

Destinos do MSBuild

Explica como agrupar tarefas juntos em uma determinada ordem e habilitar as seções do processo de compilação a ser chamado na linha de comando.

Tarefas do MSBuild

Mostra como criar uma unidade de código executável que pode ser usada por MSBuild para executar operações de compilação atômica.

Condições do MSBuild

Discute como usar o Condition atributo em um elemento do MSBuild.

Conceitos Avançado do MSBuild

Apresenta processamento em lotes, transformações, monitoramento de desempenho (log) técnicas avançadas de compilação e outros.

De MSBuild Recursosadicionais

Lista os recursos de comunidade e suporte para obter mais informações sobre o MSBuild.

Referência