Partilhar via


VCBuild vs. MSBuild: criar alterações no sistema no Visual Studio 2010

O sistema MSBuild para projetos C++ foi introduzido no Visual Studio 2010. No Visual Studio 2008 e em versões anteriores, o sistema VCBuild foi usado. Determinados tipos de arquivo e conceitos que dependem do VCBuild não existem ou são representados de maneira diferente no MSBuild. Este documento discute as diferenças no sistema de build atual. Para converter um projeto do Visual Studio 2008 no MSBuild, você deve usar o Visual Studio 2010. Depois que o projeto for convertido, você deverá usar a versão mais recente do Visual Studio para atualizar para o IDE atual e o conjunto de ferramentas do compilador. Para mais informações, incluindo como obter o Visual Studio 2010, confira Instruções para o Visual Studio 2008.

As seções a seguir resumem as alterações do VCBuild para o MSBuild. Se o projeto VCBuild tiver regras de build personalizadas ou macros que não são reconhecidas pelo MSBuild, confira Projetos do Visual Studio – C++ para saber como converter essas instruções para o sistema MSBuild. A conversão inicial do VCBuild para o MSBuild é apenas uma etapa intermediária. Não é necessário corrigir completamente o arquivo de projeto ou fazer com que o programa seja compilado sem erros. Você só está usando o Visual Studio 2010 para converter o projeto no formato MSBuild para que o projeto funcione na versão mais recente do Visual Studio.

.vcproj agora é .vcxproj

Arquivos de projeto não usam mais a extensão de nome de arquivo .vcproj. O Visual Studio 2010 converte automaticamente arquivos de projeto criados por uma versão anterior do Visual C++ no formato MSBuild, que usa a extensão .vcxproj para arquivos de projeto.

.vsprops agora é .props

No Visual Studio 2008 e anteriores, uma folha de propriedades do projeto é um arquivo baseado em XML que tem uma extensão de nome de arquivo .vsprops. Uma folha de propriedades do projeto permite especificar opções para ferramentas de build, como o compilador ou vinculador e criar macros definidas pelo usuário. No MSBuild, a extensão de nome de arquivo para uma folha de propriedades do projeto é .props.

Regras de build personalizadas e arquivos .rules

No Visual Studio 2008 e anteriores, um arquivo de regra é um arquivo baseado em XML que tem uma extensão de nome de arquivo .rules. Um arquivo de regra permite definir regras de build personalizadas e incorporá-las ao processo de build de um projeto do Visual Studio C++. Uma regra de build personalizada, que pode ser associada a uma ou mais extensões de nome de arquivo, permite que você passe os arquivos de entrada para uma ferramenta que cria um ou mais arquivos de saída.

No sistema MSBuild, as regras de build personalizadas são representadas por três tipos de arquivo: .xml, .props e .targets, em vez de um arquivo .rules. Quando um arquivo .rules que foi criado usando uma versão anterior do Visual C++ é migrado para o Visual Studio 2010, arquivos .xml, .props e .targets equivalentes são criados e armazenados em seu projeto junto com o arquivo .rules original.

Importante

No Visual Studio 2010, o IDE não dá suporte à criação de regras. Por esse motivo, a maneira mais fácil de usar um arquivo de regra de um projeto que foi criado usando uma versão anterior do Visual C++ é migrar o projeto para o Visual Studio 2010.

Macros de herança

No Visual Studio 2008 e anteriores, a macro $(Inherit) especifica a ordem na qual as propriedades herdadas são exibidas na linha de comando que é composta pelo sistema de build do projeto. A macro $(NoInherit) faz com que qualquer ocorrência de $(Inherit) seja ignorada e faz com que as propriedades que seriam herdadas não sejam mais. Por exemplo, por padrão a macro $(Inherit) faz com que arquivos especificados usando a opção do compilador /I (diretórios de inclusão adicionais) sejam acrescentados à linha de comando.

No Visual Studio 2010, a herança é compatível especificando o valor de uma propriedade como a concatenação de um ou mais valores literais e macros de propriedade. Não há suporte para as macros $(Inherit) e $(NoInherit).

No exemplo a seguir, uma lista delimitada por ponto e vírgula é atribuída a uma propriedade em uma página de propriedades. A lista consiste na concatenação do literal <value> e do valor da propriedade MyProperty, que é acessada usando a notação de macro, $(MyProperty).

Property=<value>;$(MyProperty)

Arquivos .vcxproj.user

Um arquivo de usuário (.vcxproj.user) armazena as propriedades específicas do usuário, por exemplo, depuração e configurações de implantação. O arquivo vcxproj.user se aplica a todos os projetos de um usuário específico.

Arquivo .vcxproj.filters

Quando o Gerenciador de Soluções é usado para adicionar um arquivo a um projeto, o arquivo de filtros (.vcxproj.filters) define em que o local no modo de exibição de árvore do Gerenciador de Soluções o arquivo é adicionado, com base em sua extensão de nome de arquivo.

Configurações de diretórios do VC++

As configurações de diretórios do Visual C++ são especificadas na Página de propriedades dos diretórios do VC++. No Visual Studio 2008 e anteriores, as configurações dos diretórios se aplicam por usuário e a lista de diretórios excluídos é especificada no arquivo sysincl.dat.

Você não poderá alterar as configurações de diretórios do VC++ se executar devenv /resetsettings na linha de comando. Também não será possível alterar as configurações se você abrir o menu Ferramentas, clicar em Importar e Exportar Configurações e selecionar a opção Redefinir todas as configurações.

Para migrar as configurações de diretórios do VC++ de um arquivo .vssettings criado por uma versão anterior do Visual Studio:

  1. Abra o menu, Ferramentas e clique em Importar e Exportar Configurações
  2. Selecione Importar configurações de ambiente selecionadas
  3. Siga as instruções no assistente.

Confira também

MSBuild na linha de comando – C++