Pergunta

Eu gostaria de sincronizar um VC ++ 2010 projeto com um VC ++ 2008 um. Será que é mesmo possível? Basicamente, se eu estou adicionando / apagar / renomear um arquivo a um projeto no VS2010, eu gostaria que ele ser adicionado / suprimido / renomeado para o VS2008 projeto correspondente. sincronização opções projeto seria incrível também, mas não é necessário. Eu não preciso de uma sincronização em nível de solução.

Editar : Eu tenho sugerido para "merge" os arquivos do projeto no momento do check-in ou o tempo de compilação com um script ou ferramenta. Infelizmente, o formato de arquivo de projeto VC ++ mudou de VS2008 para VS2010 e não têm nada em comum. Então, minha pergunta é mais parecido com: Existe uma ferramenta lá fora, capaz de combinar / conversão entre arquivos de projeto VC9 e VC10 eu poderia escrever a minha própria ferramenta se não há nenhuma outra maneira de resolver esta

Foi útil?

Solução

Na minha empresa que tinha exatamente o mesmo problema e escolheu usar CMake .

Pelo menos experimentá-lo em um de seus projetos, é a solução ideal para o seu problema.

Ele permite descrever os nossos projectos com uma sintaxe simples em arquivos de texto e, em seguida, CMake gera VS2005, VS2008 e VS2010 projectos dos mesmos arquivos.
Desta forma, apenas os arquivos CEfectue são modificados e todos os projetos são atualizados ao mesmo tempo.

Em suma CMake é:
1. limpa
2. descritivo
3.
nativas 4. segura

Porque:
1. Todas as opções e configurações podem ser lidos nos arquivos, não em muitos painéis de propriedades.
2. O CMake gramática e sintaxe é fácil de ler.
3. Todos os projetos gerados são completos e independentes do CMake.
4. Você pode usar um Gerenciador de controle de origem nos arquivos CEfectue.

Tivemos algumas soluções de 50 projetos ou 20 projetos e foi um monte de trabalho, e uma das razões que usamos CMake foi porque precisávamos de trabalho com o Xcode no Mac de algumas bibliotecas que projectos estão agora comum para VS e Xcode.
Mas teria valido a pena mesmo para as diferentes versões do VS única.

Outras dicas

O projecto Gallio OSS é construído usando VS2010, enquanto a maioria dos contribuintes ainda usam VS2008. Para manter os arquivos *.csproj sincronizados com os arquivos *.vs2010.csproj, usamos uma simples PowerShell script que é executado WinMerge contra cada par de arquivos de projeto. Nada complicado, mas muito útil.

Você pode baixar o script em Google Code . Para executá-lo, basta digitar o seguinte comando:

@echo off
powershell "& './Compare VS2010 Projects.ps1' -sync %*"

Espero que ajude.

O controle de origem ajuda aqui. Eu tenho feito isso antes com versões anteriores, fazendo uma filial atualizado (VS2010) e mesclar as alterações e para trás entre ele eo tronco (VS2008). Embora certamente não é perfeita, ele funciona.

Eu não sei se o projeto muda em VS2010 iria torná-lo melhor ou pior do que antes!

Eu acredito que o é uma opção de linha de comando para migrar um arquivo de projeto VS2008 para VS2010. Então, uma opção seria manter apenas o VS2008, e regenerar os VS2010 projetos. As desvantagens são

  • Não sendo capaz de entrar VS2010 opções de projeto específico
  • As alterações ao projeto VS2010 serão substituídos e não mescladas de volta para VS20008.

Você só pode manter esses arquivos solução / projeto separadamente. se você vai escrever o seu add-on por favor me avise!

Eu não tenho 2010 instalado no trabalho por isso estou indo principalmente a partir da memória aqui. Muito pouco mudou no esquema de arquivo projeto de 2005 para 2008 a 2010. Para a maior parte eu simplesmente usar uma ferramenta de comparação de texto, como WinDiff ou BeyondCompare para destacar as mudanças e copiá-los de um arquivo para outro. Eu não tenho jogado com qualquer um dos tipos de projetos web, mas eu estou supondo que em sua maior parte a mesma técnica vai funcionar. Desde a sua basicamente esquema XML é que você também pode usar uma ferramenta de mapeamento XML para fazer o mesmo trabalho.

Eu notei quando eu converter um projeto open source que 2010 realmente não gostava configurações do projeto ClickOnce. Seria converter bem, mas me pedia para converter novamente a cada momento posterior Abri o projeto. Acabei por ter de remover completamente as informações ClickOnce a partir do arquivo de projeto, a fim de fazê-lo parar.

EDIT: A minha experiência é principalmente com base no esquema de projeto C #, que não mudou muito ao longo do tempo. Como TheSamFrom1984 tem fora pontas, existem algumas grandes mudanças no C ++ esquema que não conseguiu entrar no documentação do MSDN em versão 10 ainda.

Visual Studio 2010 suporta multi-segmentação que lhe permitirá desenvolver usando VS2010 e downtarget as ferramentas da plataforma para V9 para que você possa usar as mais recentes ferramentas para manter um projeto antigo. Porque não basta fazer isso?

Ele vem com VS2010 e VS2008 para C ++ fora da caixa, é aqui algumas informações sobre settingup o VS2005 toolchain

http://weblogs.asp.net/israelio/archive/2009/10/20/enable-vs-2010-multi-targeting-also-for-vs2005-c.aspx

Eu fiz exatamente essa volta quando VS 2008 saiu e estávamos avaliando-o, enquanto o resto da equipe estavam usando VS 2005. Eu não queria cometer qualquer um dos novos arquivos de projeto formato como esse iria quebrá-lo para o resto da equipe, então eu escrevi um pequeno script em ruby ??que só procurou todos os arquivos .vcproj e renomeado-los a _2008.vcproj. Eu fiz o mesmo para os arquivos .sln também, mas também procurou as referências a .vcproj nos arquivos sln e renomeado que a _2008.vcproj para que ele faz referência aos novos projetos.

Em seguida, basta carregar os novos arquivos de solução e deixar que o Assistente de Migração fazer a sua coisa (eu assumo VS 2010 tem um igualzinho as versões mais antigas). Isso permite que você execute lado ambas as versões a lado. Se alguém na equipe faz com que quaisquer alterações ao arquivo de projeto antigo, em seguida, simplesmente re-executar sua conversão e, em seguida, o assistente deve apenas migrar o projeto que mudou.

Há mais um ajuste pode ser necessário adicionar ao script que é para alterar os campos OutputDirectory e IntermediateDirectory no arquivo vcproj de modo que você está construindo para diretórios diferentes também. Se você fizer isso, então isso significa que você deve ser capaz de construir com qualquer versão do Visual Studio na mesma árvore fonte.

Você deve tratar a cópia VS2010 como um Branch. A cada dois dias e em qualquer grande mudança (testes pendentes passar, é claro), mesclar as alterações em outro ramo. Esta é uma prática amplamente adotado e aceito em ambientes de software empresarial.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top