Visão geral do MSBuild (Visual C++)

MSBuild é o padrão de criar o sistema para projetos Visual C++. Quando você cria um projeto no ambiente de desenvolvimento integrado (IDE) do Visual Studio, ele usa a ferramenta MSBuild. exe, um arquivo de projeto baseado em XML e arquivos de configurações opcionais. Embora você possa usar o MSBuild. exe e um arquivo de projeto na linha de comando, o IDE fornece uma interface de usuário para que você pode definir as configurações e constrói um projeto mais facilmente. Esta visão geral descreve como o Visual C++ usa o sistema MSBuild.

Prerequisites

Leia os seguintes documentos sobre MSBuild.

MSBuild na linha de comando

A instrução a seguir do Referência de linha de comando do MSBuild documento ilustra que a ferramenta MSBuild. exe leva um implícito ou explícito project file (um arquivo de .vcxproj para projetos Visual C++) de argumento e zero ou mais de linha de comando options.

msbuild.exe [project file] [options]

Use o /target (ou /t) e /property (ou /p) opções de linha de comando para substituir as propriedades e os destinos são especificados no arquivo de projeto.

Uma função essencial do arquivo de projeto é especificar um destino, que é uma operação específica aplicada ao seu projeto e as entradas e saídas são necessárias para executar a operação. Um arquivo de projeto pode especificar um ou mais destinos, que podem incluir um destino padrão.

Cada destino consiste em uma seqüência de um ou mais tarefas. Cada tarefa é representada por um.NET Framework que contém um comando executável. Por exemplo, o CL tarefa contém o CL comando.

A parâmetro da tarefa é uma propriedade da tarefa de classe e geralmente representa uma opção de linha de comando do comando executável. Por exemplo, o FavorSizeOrSpeed parâmetro da CL tarefa corresponde do /Os e /Ot Opções do compilador.

Parâmetros adicionais de tarefa oferecem suporte a infra-estrutura do MSBuild. Por exemplo, o Sources parâmetro da tarefa Especifica um conjunto de tarefas que podem ser consumidos por outras tarefas. Para obter mais informações sobre tarefas do MSBuild, consulte Referência de tarefa do MSBuild.

A maioria das tarefas requerem entradas e saídas, como, por exemplo, seqüência de caracteres, os parâmetros numéricos ou booleanos, caminhos e nomes de arquivo. Por exemplo, uma entrada comum é o nome de um arquivo de origem. cpp para compilar. Um parâmetro de entrada importante é uma seqüência de caracteres que especifica a configuração de compilação e a plataforma, por exemplo, "Debug|Win32 ". Entradas e saídas são especificadas pelo XML definido pelo usuário de um ou mais Item elementos contidos em um ItemGroup elemento.

Um arquivo de projeto também pode especificar definido pelo usuário Propriedades e grupo de definições de item itens. Propriedades e os itens de pares nome/valor que podem ser usados como variáveis na compilação de formulário. O componente do nome de um par define um macro, e o componente de valor declara o o valor de macro. Uma macro de propriedade é acessada por meio de $(nome) notação e uma macro do item é acessado usando %(nome) notação.

Outros elementos XML em um arquivo de projeto podem testar as macros e então condicionalmente definir o valor de qualquer macro ou controlar a execução da compilação. Nomes de macro e seqüências de caracteres literais podem ser concatenadas para gerar construções como, por exemplo, um caminho e nome de arquivo. Na linha de comando, o /property opção define ou substitui uma propriedade de projeto. Itens não podem ser referenciados na linha de comando.

O sistema MSBuild condicionalmente pode executar um destino antes ou após outro destino. Além disso, o sistema pode construir um destino com base em arquivos de destino consome estejam mais recentes do que os arquivos que ela emite.

MSBuild no IDE

Quando você definir as propriedades do projeto no IDE e salve o projeto, o Visual C++ grava as configurações do projeto para o seu arquivo de projeto. O arquivo de projeto contém configurações que são exclusivas ao seu projeto, mas ele não contém todas as configurações são necessárias para construir seu projeto. O arquivo de projeto contém Import elementos que incluem uma rede de outros suporte a arquivos. Os arquivos de suporte contêm propriedades, destinos e configurações são necessárias para construir o projeto restantes.

A maioria dos destinos e propriedades nos arquivos de suporte existem somente para implementar o sistema de compilação. A seção a seguir aborda alguns destinos de útil e as propriedades que podem ser especificadas na linha de comando do MSBuild. Para descobrir mais destinos e propriedades, explore os arquivos nos diretórios de arquivos de suporte.

Diretórios de arquivos de suporte

Por padrão, os arquivos de suporte principais do Visual C++ estão localizados nos seguintes diretórios.

Directory

Description

unidade: \Program Files\MSBuild\Microsoft.Cpp\v4.0\

Contém os arquivos de destino principal (. targets) e arquivos de propriedade (.props) que são usados pelos destinos. Por padrão, a macro $(VCTargetsPath) faz referência a esse diretório.

unidade: \Program Files\MSBuild\Microsoft.Cpp\v4.0\Platforms\plataforma\

Contém arquivos de destino e a propriedade específicos de plataforma que substituem os destinos e propriedades na sua pasta pai. Esse diretório também contém um arquivo. dll que define as tarefas que são usadas pelos destinos neste diretório.

O plataforma espaço reservado representa a Itanium, Win32, ou x64 subdiretório.

unidade: \Program Files\MSBuild\Microsoft.Cpp\v4.0\Platforms\plataforma\ PlatformToolsets\conjunto de ferramentas\

Contém os diretórios que permitem a compilação gerar 9.0 ou aplicativos de 10.0 do Visual C++.

O plataforma espaço reservado representa a Itanium, Win32, ou x64 subdiretório. O conjunto de ferramentas espaço reservado representa a v90 ou v100 toolset subdiretório.

Arquivos de suporte

Os diretórios de arquivos de suporte contêm arquivos com as seguintes extensões.

Extension

Description

. targets

Contém Target elementos XML, que especificam as tarefas que são executadas pelo destino. Também pode conter Property Group, Item Group, Item Definition Groupe definidas pelo usuário Item elementos que são usados para atribuir arquivos e opções de linha de comando para os parâmetros da tarefa.

For more information, see Elemento de destino (MSBuild).

.Props

Contém Property Group e definidas pelo usuário Property elementos XML, que especificam o arquivo e as configurações de parâmetros que são usadas durante a compilação.

Também pode conter Item Definition Group e definidas pelo usuário Item elementos XML, que especificam as configurações adicionais. Itens definidos em um grupo de definições de item se parecem com propriedades, mas não podem ser acessados a partir da linha de comando. Arquivos de projeto do Visual C++ usa com freqüência os itens em vez de propriedades para representar as configurações.

For more information, see Elemento de ItemGroup (MSBuild), Elemento de ItemDefinitionGroup (MSBuild), and Elemento de item (MSBuild).

.xml

Contém elementos XML que declarar e inicializar os elementos de interface de usuário do IDE, como controles de caixa de lista e de caixa de texto e páginas de propriedade e folhas de propriedades.

Os arquivos. XML diretamente suportam a IDE, não o MSBuild. No entanto, são atribuídos os valores das propriedades do IDE para criar itens e propriedades.

A maioria dos arquivos. XML estão em um subdiretório de localidade específica. Por exemplo, os arquivos para a região do inglês-EUA estão em $(VCTargetsPath) \1033\.

Propriedades e os destinos de usuário

Para usar o MSBuild mais efetivamente na linha de comando, ele ajuda a saber quais propriedades e os destinos são úteis e relevantes. A maioria das propriedades e os destinos ajudam a implementar o sistema de compilação do Visual C++ e conseqüentemente não são relevantes para o usuário. Esta seção descreve algumas propriedades de orientado ao usuário vale a pena e o destinos.

Propriedade de PlatformToolset

O PlatformToolset propriedade determina se a Visual C++ 2010 ou o conjunto de ferramentas do Visual C++ 2008 é usado na compilação. O valor da propriedade é concatenado com seqüências de caracteres literais para formar o caminho de um diretório que contém os arquivos de propriedade e de destino são necessárias para criar um projeto em uma plataforma específica.

Definir o PlatformToolset propriedade para v100 para usar Visual C++ 2010 Ferramentas para criar seu aplicativo.

msbuild myProject.vcxproj /p:PlatformToolset=v100

Definir o PlatformToolset propriedade para v90 para usar as ferramentas do Visual C++ 2008 para criar seu aplicativo. O conjunto de ferramentas do Visual C++ 2008 já deve estar instalado em seu computador para essa propriedade ser eficiente.

msbuild myProject.vcxproj /p:PlatformToolset=v90

Propriedade de UseEnv

Por padrão, as configurações específicas de plataforma para o projeto atual substituem as variáveis de ambiente do caminho, INCLUDE, LIB, LIBPATH, configuração e plataforma. Definir o UseEnv propriedade para true para garantir que as variáveis de ambiente não são substituídas.

msbuild myProject.vcxproj /p:UseEnv=true

Targets

Existem centenas de destinos nos arquivos de suporte do Visual C++. No entanto, a maioria são alvos orientados para o sistema que o usuário pode ignorar. A maioria dos destinos de sistema são antecedidos por um sublinhado (_), ou tem um nome que começa com "PrepareFor", "Calcular", "Antes", "Após", "pre" ou "Post".

A tabela a seguir lista vários destinos vale a pena orientado ao usuário.

Target

Description

BscMake

Executa a ferramenta de procurar informações sobre manutenção utilitário Microsoft bscmake.exe.

Build

Cria o projeto.

Este é o destino padrão de um projeto.

ClCompile

Executa a ferramenta do compilador Visual C++, cl.

Clean

Exclui temporários e de nível intermediário compilar os arquivos.

Lib

Executa a ferramenta Gerenciador de biblioteca Microsoft 32 bits, lib.exe.

Link

Executa a ferramenta de vinculador do Visual C++, link. exe.

ManifestResourceCompile

Extrai uma lista de recursos a partir de um manifesto e executa a ferramenta do compilador de recurso do Microsoft Windows, rc. exe.

MIDL

Executa a ferramenta do compilador de linguagem de definição de Interface da Microsoft (MIDL), midl.exe.

Rebuild

Limpa e compila seu projeto.

ResourceCompile

Executa a ferramenta do compilador de recurso do Microsoft Windows, rc. exe.

XdcMake

Executa a ferramenta de documentação XML, xdcmake.exe.

XSD

Executa a ferramenta de definição de esquema XML, XSD. exe.

Consulte também

Outros recursos

MSBuild (Visual C++)

Histórico de alterações

Date

History

Motivo

Março de 2011

Alterado o plataforma espaço reservado nos diretórios"arquivo de suporte" tabela para incluir "x64" em vez de "x86".

Comentários do cliente.