Domanda

Vorrei sincronizzare un progetto VC ++ 2010 con un progetto VC ++ 2008. È anche possibile? Fondamentalmente, se sto aggiungendo / eliminando / rinominando un file in un progetto in VS2010, mi piacerebbe che fosse aggiunto / cancellato / rinominato nel corrispondente progetto VS2008. Anche la sincronizzazione delle opzioni di progetto sarebbe fantastica, ma non necessaria. Non ho nemmeno bisogno di una sincronizzazione a livello di soluzione.

Modifica : mi è stato suggerito di " unire " i file di progetto al momento del check-in o durante la compilazione con uno script o uno strumento. Sfortunatamente, il formato del file di progetto VC ++ è cambiato da VS2008 a VS2010 e non ha nulla in comune. Quindi la mia domanda è più simile a: Esiste uno strumento là fuori in grado di unire / convertire tra i file di progetto vc9 e vc10? Potrei scrivere il mio strumento se non ci fosse altro modo di risolverlo.

È stato utile?

Soluzione

Nella mia azienda abbiamo riscontrato esattamente lo stesso problema e abbiamo scelto di utilizzare CMake .

Almeno provalo su uno dei tuoi progetti, è la soluzione ideale per il tuo problema.

Permette di descrivere i nostri progetti con una semplice sintassi in file di testo e quindi CMake genera progetti VS2005, VS2008 e VS2010 dagli stessi file.
In questo modo vengono modificati solo i file Cmake e tutti i progetti vengono aggiornati contemporaneamente.

In breve CMake è:
 1. pulito
 2. descrittivo
 3.
nativo  4. sicuro

A causa:
 1. Tutte le opzioni e le configurazioni possono essere lette nei file, non in molti pannelli delle proprietà.
 2. La grammatica e la sintassi di CMake sono facili da leggere.
 3. Tutti i progetti generati sono completi e indipendenti da CMake.
 4. È possibile utilizzare un controllo controllo del codice sorgente sui file CMake.

Avevamo alcune soluzioni di 50 progetti o 20 progetti ed è stato un sacco di lavoro, e uno dei motivi per cui abbiamo usato CMake era perché dovevamo lavorare con Xcode su Mac su alcune librerie i cui progetti sono ora comuni per VS e Xcode.
Ma ne sarebbe valsa la pena anche solo per le diverse versioni di VS.

Altri suggerimenti

Il progetto Gallio OSS è realizzato con VS2010 mentre la maggior parte dei collaboratori utilizza ancora VS2008. Per mantenere sincronizzati i file * .csproj con i file * .vs2010.csproj , utilizziamo un semplice script PowerShell che esegue WinMerge su ogni coppia di file di progetto. Niente di complicato, ma molto utile.

Puoi scaricare lo script in Codice Google . Per eseguirlo, basta digitare il seguente comando:

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

Spero che sia d'aiuto.

Il controllo del codice sorgente aiuta qui. L'ho già fatto con le versioni precedenti creando un ramo aggiornato (VS2010) e unendo le modifiche avanti e indietro tra esso e il trunk (VS2008). Anche se certamente non senza soluzione di continuità, funziona.

Non so se i cambiamenti del progetto in VS2010 lo renderebbero migliore o peggiore di prima!

Credo che sia un'opzione della riga di comando per migrare un file di progetto VS2008 su VS2010. Quindi un'opzione sarebbe quella di mantenere solo il VS2008 e di rigenerare i progetti VS2010. Gli svantaggi sono

  • Non essere in grado di inserire le opzioni specifiche del progetto VS2010
  • Eventuali modifiche al progetto VS2010 verranno sovrascritte e non ricollegate a VS20008.

È possibile conservare solo quei file di soluzione / progetto separatamente. se scriverai il tuo componente aggiuntivo per favore fatemelo sapere!

Non ho installato 2010 al lavoro, quindi vado principalmente dalla memoria qui. È cambiato molto poco nello schema dei file di progetto dal 2005 al 2008 al 2010. Per la maggior parte utilizzo semplicemente uno strumento di confronto di testi come WinDiff o BeyondCompare per evidenziare le modifiche e copiarle da un file all'altro. Non ho giocato con nessuno dei tipi di progetti web, ma suppongo che per lo più funzionerà la stessa tecnica. Dato che il loro schema sostanzialmente XML è possibile utilizzare uno strumento di mappatura XML per fare lo stesso lavoro.

Quando ho convertito un progetto open source ho notato che il 2010 non mi è piaciuto molto le impostazioni del progetto ClickOnce. Si convertirà bene, ma mi chiederebbe di riconvertire di nuovo ogni volta che ho aperto il progetto. Ho finito per dover rimuovere completamente le informazioni di ClickOnce dal file di progetto per farlo arrestare.

EDIT: La mia esperienza si basa principalmente sullo schema del progetto C #, che non è cambiato molto nel tempo. Come ha sottolineato TheSamFrom1984, ci sono alcune grandi modifiche nello schema C ++ che non sono diventate documentazione MSDN sulla versione 10 ancora.

Visual Studio 2010 supporta il multi-targeting che ti consentirà di sviluppare utilizzando VS2010 e ridimensionare gli strumenti della piattaforma su V9 in modo da poter utilizzare gli strumenti più recenti per mantenere un progetto più vecchio. Perché non farlo?

Viene fornito con VS2010 e VS2008 per C ++ out of the box, ecco alcune informazioni sull'impostazione della toolchain VS2005

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

L'ho fatto esattamente quando è uscito VS 2008 e lo stavamo valutando mentre il resto del team stava usando VS 2005. Non volevo impegnare nessuno dei nuovi file di progetto in formato perché ciò lo avrebbe rotto il resto del team, quindi ho scritto un piccolo script in ruby ??che ha appena cercato tutti i file .vcproj e li ho rinominati in _2008.vcproj . Ho fatto lo stesso anche per i file .sln , ma ho anche cercato i riferimenti a .vcproj nei file sln e li ho rinominati in < codice> _2008.vcproj in modo che faccia riferimento ai nuovi progetti.

Successivamente, carica i nuovi file della soluzione e lascia che la procedura guidata di migrazione faccia il suo lavoro (suppongo che VS 2010 ne abbia uno proprio come le versioni precedenti). Ciò consente di eseguire entrambe le versioni fianco a fianco. Se qualcun altro nel team apporta modifiche al vecchio file di progetto, è sufficiente rieseguire la conversione e la procedura guidata dovrebbe semplicemente migrare il progetto modificato.

Potrebbe esserci un ulteriore aggiustamento che potresti dover aggiungere allo script che è quello di cambiare i campi OutputDirectory e IntermediateDirectory nel file vcproj in modo che tu stia costruendo in modo diverso anche le directory. Se lo fai, significa che dovresti essere in grado di compilare con entrambe le versioni di Visual Studio sullo stesso albero dei sorgenti.

Dovresti trattare la copia di VS2010 come una diramazione. Ogni paio di giorni e in caso di modifiche importanti (ovviamente, i test in sospeso superano), unisci le modifiche nell'altro ramo. Questa è una pratica ampiamente adottata e accettata negli ambienti software Enterprise.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top