MSBuild na linha de comando – C++
Em geral, é recomendável usar o Visual Studio para definir as propriedades do projeto e invocar o sistema MSBuild. No entanto, é possível usar a ferramenta MSBuild diretamente no prompt de comando. O processo de build é controlado pelas informações em um arquivo de projeto (.vcxproj) que você poderá criar e editar. O arquivo de projeto especifica as opções de build com base em eventos, condições e estágios de build. Além disso, é possível especificar zero ou mais argumentos de opções de linha de comando.
msbuild.exe [ project_file ] [ options ]
Use as opções de linha de comando /target (ou /t) e /property (ou /p) para substituir as propriedades e os destinos específicos definidos no arquivo de projeto.
Uma função essencial do arquivo de projeto é especificar um destino, que é uma operação específica aplicada ao projeto, e as entradas e saídas necessárias para executar essa operação. Um arquivo de projeto pode especificar um ou mais destinos, que poderão incluir um destino padrão.
Cada destino consiste em uma sequência de uma ou mais tarefas. Cada tarefa é representada por uma classe .NET Framework que contém um comando executável. Por exemplo, a tarefa CL contém o comando cl.exe.
Um parâmetro de tarefa é uma propriedade da tarefa de classe e normalmente representa uma opção de linha de comando do comando executável. Por exemplo, o parâmetro FavorSizeOrSpeed
da tarefa CL
corresponde às opções do compilador /Os e /Ot.
Parâmetros de tarefas adicionais dão suporte à infraestrutura do MSBuild. Por exemplo, o parâmetro de tarefa Sources
especifica um conjunto de tarefas que poderão ser consumidas por outras tarefas. Para obter mais informações sobre tarefas do MSBuild, consulte Referência de Tarefas.
A maioria das tarefas exige entradas e saídas como nomes de arquivos, caminhos e parâmetros de cadeia de caracteres, numéricos ou boolianos. Por exemplo, uma entrada comum é o nome de um arquivo de origem .cpp a ser compilado. Um parâmetro de entrada importante é uma cadeia de caracteres que especifica a configuração de build e a plataforma, por exemplo, "Debug|Win32". As entradas e as saídas são especificadas por um ou mais elementos XML Item
definidos pelo usuário contidos em um elemento ItemGroup
.
Um arquivo de projeto também pode especificar propriedades e ItemDefinitionGroup
itens definidos pelo usuário. Propriedades e itens formam pares nome/valor que podem ser usados como variáveis no build. O componente de nome de um par define uma macro e o componente de valor declara o valor da macro. Uma macro de propriedade é acessada usando a notação $(nome) e uma macro de item é acessada usando notação %(nome).
Outros elementos XML em um arquivo de projeto podem testar macros e, em seguida, definir condicionalmente o valor de qualquer macro ou controlar a execução do build. Nomes de macro e cadeia de caracteres literais poderão ser concatenados para gerar construções como um caminho e um nome de arquivo. Na linha de comando, a opção /property define ou substitui uma propriedade do projeto. Itens não podem ser referenciados na linha de comando.
O sistema MSBuild pode executar condicionalmente um destino antes ou após outro destino. Além disso, o sistema poderá compilar um destino dependendo se os arquivos que o destino consome são mais recentes do que os arquivos que emite.
Para obter mais informações sobre o MSBuild, consulte:
MSBuild Visão geral dos conceitos do MSBuild.
Referência do MSBuild Informações de referência sobre o sistema MSBuild.
Referência do esquema do arquivo do projeto Lista os elementos do esquema XML do MSBuild, juntamente com os atributos e os elementos pai e filho. Observe especialmente os elementos ItemGroup, PropertyGroup, Target e Task.
Referência de linha de comando Descreve os argumentos e as opções de linha de comando que podem ser usados com o msbuild.exe.
Referência de tarefa Descreve as tarefas do MSBuild. Observe especialmente essas tarefas, que são específicas do Visual C++: Tarefa BscMake, Tarefa CL, Tarefa CPPClean, Tarefa LIB, Tarefa Link, Tarefa MIDL, Tarefa MT, Tarefa RC, Tarefa SetEnv, Tarefa VCMessage
Nesta seção
Termo | Definição |
---|---|
Passo a passo: Usar o MSBuild para criar um projeto do C++ | Demonstra como criar um projeto do Visual Studio C++ usando o MSBuild. |
Como usar eventos de build em projetos do MSBuild | Demonstra como especificar uma ação que ocorre em um estágio específico no build: antes do início do build; antes do início da etapa de link ou após o término do build. |
Como adicionar uma etapa de build personalizada a projetos MSBuild | Demonstra como adicionar um estágio definido pelo usuário à sequência de build. |
Como adicionar ferramentas de build personalizadas a projetos MSBuild | Demonstra como associar uma ferramenta de build a um arquivo específico. |
Como integrar ferramentas personalizadas a propriedades de projeto | Demonstra como adicionar as opções para uma ferramenta personalizada às propriedades do projeto. |
Como modificar a estrutura de destino e o conjunto de ferramentas da plataforma | Demonstra como compilar um projeto para várias estruturas ou conjuntos de ferramentas. |