Question

J'aimerais synchroniser un projet VC ++ 2010 avec un projet VC ++ 2008. Est-ce même possible? En gros, si j'ajoute / supprime / renomme un fichier dans un projet dans VS2010, j'aimerais qu'il soit ajouté / supprimé / renommé dans le projet VS2008 correspondant. La synchronisation des options de projet serait également géniale mais pas nécessaire. Je n'ai pas besoin non plus d'une synchronisation au niveau de la solution.

Modifier : il a été suggéré de "fusionner". les fichiers du projet au moment de l’enregistrement ou de la construction avec un script ou un outil. Malheureusement, le format de fichier de projet VC ++ est passé de VS2008 à VS2010 et n’a aucun point commun. Ma question est donc plutôt la suivante: Existe-t-il un outil capable de fusionner / convertir des fichiers de projet vc9 et vc10? Je pourrais écrire mon propre outil s'il n'y a pas d'autre moyen de résoudre ce problème. / p>

Était-ce utile?

La solution

Dans mon entreprise, nous avions exactement le même problème et nous avions choisi d'utiliser CMake .

Au moins, essayez-le sur l’un de vos projets, c’est la solution idéale à votre problème.

Il permet de décrire nos projets avec une syntaxe simple dans des fichiers texte, puis CMake génère des projets VS2005, VS2008 et VS2010 à partir des mêmes fichiers.
De cette façon, seuls les fichiers Cmake sont modifiés et tous les projets sont mis à jour en même temps.

En bref, CMake c'est:
 1. propre
 2. descriptif
 3.
natif  4. sûr

Parce que:
 1. Toutes les options et configurations peuvent être lues dans les fichiers, mais pas dans de nombreux panneaux de propriétés.
 2. La grammaire et la syntaxe de CMake sont faciles à lire.
 3. Tous les projets générés sont complets et indépendants de CMake.
 4. Vous pouvez utiliser un gestionnaire de contrôle de source sur les fichiers CMake.

Nous avions des solutions de 50 projets ou 20 projets et cela demandait beaucoup de travail. L’une des raisons pour lesquelles nous avons utilisé CMake était parce que nous avions besoin de travailler avec Xcode sur Mac dans certaines bibliothèques, projets qui sont maintenant courants pour VS et Xcode.
Mais cela aurait valu la peine, même pour les différentes versions de VS uniquement.

Autres conseils

Le projet Gallio OSS est construit à l'aide de VS2010, tandis que la plupart des contributeurs utilisent encore VS2008. Pour que les fichiers *. Csproj soient synchronisés avec les fichiers *. Vs2010.csproj , nous utilisons un simple script PowerShell qui exécute WinMerge sur chaque paire de fichiers de projet. Rien de compliqué, mais très pratique.

Vous pouvez télécharger le script à l'adresse Code Google . Pour l'exécuter, tapez simplement la commande suivante:

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

J'espère que cela vous aidera.

Le contrôle de source aide ici. Je l'avais déjà fait auparavant avec les versions précédentes en créant une branche mise à niveau (VS2010) et en fusionnant les modifications entre elle et le tronc (VS2008). Bien que ce ne soit certainement pas homogène, cela fonctionne.

Je ne sais pas si les changements apportés au projet dans VS2010 le rendraient meilleur ou pire qu’avant!

Je crois qu’il s’agit d’une option de ligne de commande permettant de migrer un fichier de projet VS2008 vers VS2010. Donc, une option serait de ne maintenir que le VS2008 et de régénérer les projets VS2010. Les inconvénients sont

  • Impossibilité d'entrer les options de projet spécifiques à VS2010
  • Toutes les modifications apportées au projet VS20 seront écrasées et ne seront pas fusionnées dans VS20008.

Vous pouvez uniquement gérer ces fichiers solution / projet séparément. si vous écrivez votre add-on s'il vous plaît faites le moi savoir!

Je n'ai pas 2010 installé au travail, donc je vais surtout de mémoire ici. Très peu de choses ont changé dans le schéma de fichier de projet entre 2005 et 2008-2010. Pour la plupart, j'utilise simplement un outil de comparaison de texte tel que WinDiff ou BeyondCompare pour mettre en évidence les modifications et les copier d'un fichier à l'autre. Je n'ai joué à aucun type de projet Web, mais je suppose que la même technique fonctionnera dans la plupart des cas. Depuis leur schéma XML, vous pouvez également utiliser un outil de mappage XML pour effectuer le même travail.

Lors de la conversion d'un projet open source, j'ai remarqué que 2010 n'aimait vraiment pas les paramètres du projet ClickOnce. Il se convertirait bien, mais me demanderait de le convertir chaque fois que j'ouvrirais le projet. J'ai fini par avoir à supprimer complètement les informations ClickOnce du fichier de projet afin de les arrêter.

EDIT: Mon expérience est principalement basée sur le schéma du projet C #, qui n'a pas beaucoup changé avec le temps. Comme TheSamFrom1984 l’a souligné, de grands changements dans le schéma C ++ n’ont pas été intégrés au Documentation MSDN sur la version 10 pour le moment.

Visual Studio 2010 prend en charge le multi-ciblage, ce qui vous permet de développer à l'aide de VS2010 et de réduire les outils de plate-forme à la version 9 afin que vous puissiez utiliser les derniers outils pour gérer un projet plus ancien. Pourquoi ne pas simplement faire ça?

Il est livré avec VS2010 et VS2008 pour C ++, voici quelques informations sur la configuration de la chaîne d'outils VS2005

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

Je l’ai fait précisément lorsque VS 2008 est sorti et que nous l’évaluions pendant que le reste de l’équipe utilisait VS 2005. Je ne voulais pas valider les fichiers de projet au nouveau format, cela casserait cela. le reste de l'équipe, j'ai donc écrit un petit script en ruby ??qui ne faisait que rechercher tous les fichiers .vcproj et les renommer en _2008.vcproj . J'ai fait de même pour les fichiers .sln également, mais j'ai également recherché les références à .vcproj dans les fichiers sln et les ai renommées en < code> _2008.vcproj afin qu'il fasse référence aux nouveaux projets.

Ensuite, chargez simplement les nouveaux fichiers de solution et laissez l’assistant de migration s’acquitter de sa tâche (je suppose que VS 2010 en possède un tout comme les anciennes versions). Cela vous permet d’exécuter les deux versions côte à côte. Si un autre membre de l’équipe apporte des modifications à l’ancien fichier de projet, il vous suffit de réexécuter votre conversion, puis l’assistant doit simplement migrer le projet qui a changé.

Il est peut-être nécessaire d'ajouter quelque chose au script, qui consiste à modifier les champs OutputDirectory et IntermediateDirectory dans le fichier vcproj afin de générer un autre fichier. les répertoires aussi. Si vous faites cela, cela signifie que vous devriez pouvoir créer avec l'une ou l'autre version de Visual Studio sur le même arbre source.

Vous devez traiter la copie VS2010 comme une branche. Tous les deux jours et en cas de modification majeure (les tests en attente réussissent, bien entendu), fusionnez les modifications dans l'autre branche. C’est une pratique largement adoptée et acceptée dans les environnements logiciels d’entreprise.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top