Usar multiplataforma nativa no Visual Studio para compilar projetos antigos

Normalmente, é recomendável atualizar seus projetos ao instalar a versão mais recente do Visual Studio. O custo de atualização de seus projetos e do seu código é, com frequência, mais do que o deslocamento pelos benefícios do novo IDE, compilador, bibliotecas e ferramentas. No entanto, sabemos que talvez não será possível atualizar alguns projetos. Talvez você tenha binários vinculados a bibliotecas ou plataformas mais antigas que, por razões de manutenção, não podem ser atualizadas. Seu código pode usar constructos de linguagem não padrão que poderiam ser interrompidos se você passasse para um compilador mais recente. Seu código pode depender de bibliotecas de terceiros compiladas para uma versão específica do Visual C++. Ou você pode produzir bibliotecas para outros que devem definir como destino uma versão mais antiga específica do Visual C++.

Felizmente, é possível usar o Visual Studio para compilar projetos que definem como destino conjuntos de ferramentas e bibliotecas de compilador mais antigos. Se ainda tiver as ferramentas originais instaladas, você não precisará atualizar um projeto do Visual Studio 2010 para aproveitar os novos recursos no IDE:

  • Novos recursos experimentais do editor e de refatoração do C++
  • Nova janela do depurador de ferramentas de diagnóstico e nova janela Lista de Erros
  • Pontos de interrupção e janela de exceções renovados e novos PerfTips
  • Novas ferramentas de pesquisa e de navegação de código
  • Novas correções rápidas do C++ e extensões de Ferramentas Avançadas de Produtividade.

Também é possível definir como destino projetos do Visual Studio 2008, mas eles não podem ser usados sem ser alterados. Para obter detalhes, confira a seção Instruções para o Visual Studio 2008.

As versões mais recentes do Visual Studio dão suporte à multiplataforma nativa e ao ciclo completo de projetos. A multiplataforma nativa é a capacidade que o IDE mais recente tem de compilar usando conjuntos de ferramentas instalados por versões anteriores do Visual Studio. O ciclo completo é a capacidade que o IDE mais recente tem de carregar projetos criados por uma versão anterior do IDE sem fazer alterações no projeto. Se você instalar a versão mais recente do Visual Studio juntamente com sua versão existente, é possível usar a nova versão do IDE com o compilador e as ferramentas da versão existente para compilar seus projetos. Outros membros da sua equipe podem continuar usando os projetos na versão mais antiga do Visual Studio.

Ao usar um conjunto de ferramentas mais antigo, é possível aproveitar muitos dos recursos mais recentes do IDE, mas não os avanços mais recentes no compilador, nas bibliotecas e nas ferramentas de build C++. Por exemplo, não será possível usar as novas melhorias de conformidade de linguagem, os novos recursos de depuração e de análise de código nem obter a taxa de transferência de build mais rápida do mais recente conjunto de ferramentas. Também há alguns recursos do IDE incompatíveis com conjuntos de ferramentas mais recentes. Por exemplo, as informações de tipo podem estar ausentes no Criador de Perfil de Memória e a operação de refatoração Converter em literais de cadeia de caracteres brutos gera código em conformidade com C++11 que não será compilado ao usar o Visual Studio 2012 ou conjuntos de ferramentas mais antigos.

Como usar a multiplataforma nativa no Visual Studio

Depois de instalar o Visual Studio juntamente com sua versão mais antiga, abra seu projeto existente na nova versão do Visual Studio. Quando o projeto é carregado, o Visual Studio pergunta se você deseja atualizá-lo para usar o compilador e as bibliotecas mais recentes do C++. Como você deseja que o projeto mantenha a biblioteca e o compilador mais antigos, escolha o botão Cancelar.

O Visual Studio é persistente na atualização do seu projeto. Para evitar ver a caixa de diálogo de atualização sempre que carregar o projeto, é possível definir a seguinte propriedade em seus projetos ou nos arquivos .props ou .targets importados:

<VCProjectUpgraderObjectName>NoUpgrade</VCProjectUpgraderObjectName>

É necessário remover essa propriedade quando você desejar atualizar seus projetos.

Se você optar por não atualizar, o Visual Studio não fará nenhuma alteração em seus arquivos de solução nem de projeto. Quando você cria o projeto, os binários gerados são totalmente compatíveis com os criados com a versão mais antiga do Visual Studio, pois o Visual Studio usa o mesmo compilador C++ e vincula as mesmas bibliotecas com as quais o IDE mais antigo foi enviado. É por isso, também, que a caixa de diálogo de atualização avisa você para manter a versão mais antiga do Visual Studio instalada se você escolhe Cancelar.

Instruções para o Visual Studio 2008

O Visual Studio 2008 tinha seu próprio sistema de build dedicado para C++ chamado VCBuild. No Visual Studio 2010, os projetos do Visual Studio C++ foram alterados para usar o MSBuild. Seja atualizando permanentemente ou em multiplataforma, é necessário passar por uma etapa de atualização para compilar seus projetos do Visual Studio 2008 na versão mais recente do Visual Studio. Seu projeto atualizado ainda gera binários totalmente compatíveis com os binários criados usando o Visual Studio 2008 IDE.

Primeiro, além da versão atual do Visual Studio, é necessário instalar o Visual Studio 2010 no mesmo computador que o Visual Studio 2008. Somente o Visual Studio 2010 instala os scripts do MSBuild que são necessários para projetos do Visual Studio 2008 de destino.

Em seguida, é necessário atualizar seus projetos e sua solução do Visual Studio 2008 para a versão atual do Visual Studio. Recomendamos que você crie um backup de seus projetos e arquivos de solução antes da atualização. Para iniciar o processo de atualização, abra a solução na versão atual do Visual Studio. Quando você receber o prompt de atualização, examine as informações apresentadas e escolha OK para iniciar a atualização. Se a solução tiver mais de um projeto, você deverá atualizar cada projeto. O assistente cria novos arquivos de projeto .vcxproj lado a lado com os arquivos .vcproj existentes. Desde que você também tenha uma cópia do arquivo .sln original, a atualização não tem nenhum outro efeito sobre os projetos existentes do Visual Studio 2008.

Observação

As etapas a seguir se aplicam somente a cenários de multiplataforma. Se você pretende atualizar permanentemente o projeto para um conjunto de ferramentas posterior, sua próxima etapa é salvar o projeto, abri-lo na versão mais recente do Visual Studio e resolver os problemas de compilação que aparecem lá.

Quando a atualização for concluída, se o relatório de log tiver erros ou avisos para qualquer um de seus projetos, examine-os cuidadosamente. A conversão do VCBuild para o MSBuild pode causar problemas. Certifique-se de entender e implementar quaisquer itens de ação listados no relatório. Para obter mais informações sobre o relatório de log de atualização e os problemas que podem ocorrer durante a conversão do VCBuild em MSBuild, confira a postagem no blog C++ Native Multi-Targeting (Multiplataforma nativa do C++).

Quando a atualização for concluída, e você tiver corrigido quaisquer problemas no arquivo de log, sua solução agora define como destino o conjunto de ferramentas mais recente. Como etapa final, altere as propriedades para que cada projeto na solução use o conjunto de ferramentas do Visual Studio 2008. Com a solução carregada na versão atual do Visual Studio, para cada projeto na solução, abra o a caixa de diálogo do projeto Páginas de Propriedades: clique com o botão direito do mouse no projeto em Gerenciador de Soluções e, em seguida, selecione Propriedades. Na caixa de diálogo Páginas de Propriedades, altere o valor suspenso Configuração para Todas as configurações. Em Propriedades de Configuração, selecione Geral e, em seguida, altere o Conjunto de Ferramentas da Plataforma para Visual Studio 2008 (v90).

Após essa alteração, o compilador e as bibliotecas do Visual Studio 2008 são usados para gerar binários de projeto quando você compila a solução na versão atual do Visual Studio.

Instalar um conjunto de ferramentas do Visual Studio mais antigo

Você pode ter um projeto antigo do Visual Studio C++ que você não pode ou não quer atualizar. Para compilá-lo, você precisa da versão do conjunto de ferramentas da plataforma que corresponde ao seu projeto. Para obter o conjunto de ferramentas, é possível instalar gratuitamente a edição Visual Studio Community ou Express da versão necessária. Cada versão do Visual Studio, do Visual Studio 2008 em diante, pode instalar o compilador, as ferramentas e as bibliotecas necessários para definir como destino essa versão com base no Visual Studio atual. Pesquise no Centro de Download da Microsoft para localizar e baixar uma versão específica do Visual Studio. Certifique-se de que escolher as opções de instalação do C++ durante a instalação. Quando a instalação for concluída, execute essa versão do Visual Studio para instalar quaisquer atualizações. Também verifique se há alterações do Windows Update que possam ser exigidas. Talvez seja necessário repetir esse processo de verificação de atualização mais de uma vez para obter todas as atualizações.

Para ver os downloads disponíveis no momento, consulte Download older Visual Studio software (Baixar o software mais antigo do Visual Studio).

Quando esses produtos são instalados, o menu suspenso de propriedades Conjunto de Ferramentas de Plataforma na caixa de diálogo Páginas de Propriedade é automaticamente atualizada para mostrar os conjuntos de ferramentas disponíveis. Agora você pode usar a versão mais recente do Visual Studio para criar projetos que usam uma versão mais antiga do conjunto de ferramentas: não é necessária qualquer conversão ou atualização.

Confira também

Como atualizar projetos de versões anteriores do Visual C++
Aprimoramentos de conformidade do C++ no Visual Studio