Partilhar via


Guia MSBuild para desenvolvedores WDK

Esta seção apresenta algumas terminologias básicas do MSBuild para desenvolvedores WDK, que estão familiarizados com Build.exe e NMake.exe. Esta seção mostra a construção de projetos MSBuild simples.

Conceitos Nmake relevantes para o MSBuild

Se você já trabalhou com Build.exe e versões anteriores do WDK (antes do WDK 8), provavelmente está familiarizado com a terminologia e os conceitos que NMake.exe usa.

  • command - invoca uma ferramenta de linha de comando.
  • target - descreve uma sequência nomeada de comandos.
  • dependência - descreve um destino que depende de outros destinos.
  • Nmake é invocado em um arquivo make com um ou mais destinos especificados. Em seguida, ele executa todas as dependências recursivamente e, em seguida, os comandos do alvo.
  • Os arquivos Nmake podem incluir outros arquivos make para o gerenciamento robusto da estrutura de compilação.
  • Nmake também suporta a criação de variáveis nomeadas que serão substituídas por parâmetros de comandos.
  • Nmake também suporta variáveis automáticas que são atribuídas pelo próprio Make.exe, por exemplo, o nome do diretório ou caminho atual.
  • Um alvo nunca será executado duas vezes durante uma única compilação. Uma vez executado, presume-se que um alvo concluiu o seu trabalho e não será executado novamente, mesmo que um alvo subsequente na compilação dependa dele.

Conceitos do MSBuild

  • A principal extensão de arquivo MSBuild para projetos C++ é .vcxproj.

  • Os comandos agora são chamados de tarefas, e não são simplesmente invocações de processos de linha de comando. Em vez disso, as tarefas são unidades de código executável que o MSBuild pode usar para executar operações de compilação atômica. Para obter uma lista completa de tarefas, consulte Tarefas do MSBuild específicas do Visual C++.

  • O MSBuild importa as tarefas de seus assemblies CLR (Common Language Runtime) com o elemento UsingTask , como mostra o exemplo a seguir.

    <UsingTask TaskName="TaskName" AssemblyName="AssemblyName" />
    
  • Os alvos agrupam tarefas em uma ordem específica e permitem que o processo de construção seja dividido em unidades menores.

  • Um PropertyGroup permite que as propriedades sejam definidas usando um formato amigável para humanos. O exemplo a seguir mostra o formato PropertyGroup .

    <PropertyGroup>
      <ProductVersion>9.0.30729</ProductVersion>
    </PropertyGroup>
    
  • Um Item é uma variante orientada a objeto de Property. Enquanto o formato da propriedade é nome/valor, o formato do item é nome/objeto onde o objeto tem vários atributos. Os itens são matrizes de objetos.

  • As propriedades são referenciadas com o formato $(projeto), enquanto os itens são referenciados com o formato @(name).

  • Um ItemGroup é uma coleção de Items.

  • Um ItemGroups é normalmente uma lista de todos os arquivos que devem ser compilados. A coleção de arquivos é então passada para uma tarefa usando a notação @(itemname ). Consulte Itens do MSBuild para obter mais informações sobre como usar itens.

  • MSBuild tem um número de propriedades internas que você também pode referenciar em um arquivo de projeto.

  • Para obter mais informações sobre MSBuild e tarefas de compilação, consulte Conceitos do MSBuild e Referência do MSBuild.