Partilhar via


Primer do MSBuild para desenvolvedores do WDK

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

Conceitos do Nmake relevantes para o MSBuild

Se você 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.
  • O 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 destino.
  • Os arquivos do Nmake podem incluir outros arquivos make para o gerenciamento robusto da estrutura de build.
  • O Nmake também dá suporte à criação de variáveis nomeadas que serão substituídas por parâmetros de comandos.
  • O Nmake também dá suporte a variáveis automáticas atribuídas pelo próprio Make.exe, por exemplo, o nome do diretório ou caminho atual.
  • Um destino nunca será executado duas vezes durante um único build. Uma vez executado, supõe-se que um destino concluiu seu trabalho e não será executado novamente, mesmo que um destino subsequente no build dependa dele.

Conceitos do MSBuild

  • A extensão de arquivo main 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ômicas. 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 destinos agrupam tarefas em uma ordem específica e permitem que o processo de build 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. Embora o formato da propriedade seja nome/valor, o formato do item é nome/objeto em que o objeto tem vários atributos. Os itens são matrizes de objetos .

  • As propriedades são referenciadas com o formato $(project), enquanto Itens são referenciados com o formato @(name).

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

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

  • O MSBuild tem várias propriedades internas que você também pode referenciar em um arquivo de projeto.

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