Visual Studio 2012 ne convertit pas la solution vs2010?

J’ai ouvert ma solution vs2010 avec vs2012 mais aucune conversion n’a eu lieu entre 2008 et 2010. Donc, ma solution rest la même que 10 étiquette sur elle. quand je fais une nouvelle solution, bien sûr, il y a 11 étiquettes. Je n’ai aucun problème à courir comme ça mais je suis curieux. Y a-t-il une différence? Si oui, comment convertir en solution vs2012?

Il y a quelques exceptions , mais vous pourrez surtout ouvrir les mêmes fichiers de projet et de solution dans VS2012 et VS2010 SP1.

VS2012 peut convertir des projets lorsque vous les ouvrez pour la première fois, mais les modifications sont (sauf indication dans le document lié) rétrocompatibles avec VS2010 (c.-à-d. .

J’ai réussi à «convertir» le fichier de solution pour changer la ligne contenant «# Visual Studio 2010» en «# Visual Studio 2012» dans le fichier .SLN.

L’édition manuelle du fichier de solution n’est pas nécessaire ou recommandée. Ouvrez simplement la solution VS2010 dans VS2012, cliquez sur la solution (tout en haut de l’explorateur de solutions), puis utilisez Fichier | Enregistrer sous pour écraser le fichier d’origine. Cela permettra de convertir efficacement le fichier de solution VS2010 en un fichier de solution VS2012.

Il s’agit de la compatibilité avec Visual Studio 2012

Si vous avez créé vos ressources dans Visual Studio 2010 avec Service Pack 1 (SP1), nombre d’entre elles seront chargées et exécutées dans Visual Studio 2012 sans aucune autre action de votre part.

De nombreux actifs s’ouvriront également à nouveau dans Visual Studio 2010 avec SP1, même après avoir ouvert ces actifs dans Visual Studio 2012

Pour les projets C ++, cela fait une différence, car le compilateur 2012 (VC11) ne sera utilisé que sur des projets explicitement 2012 et non sur des projets ouverts en 2010 dans VS 2012. Certaines améliorations C ++ 11 sont disponibles avec le compilateur VC11 mais pas avec VC10 (voir cette réponse SO pour un résumé), y compris:

  • Gamme basée sur des boucles
  • Nouveaux en-têtes de bibliothèque standard (atomique, mutex, thread, …)
  • Tailles de conteneur de bibliothèque standard plus petites
  • (Et plus à suivre lorsque le CTP de novembre 2012 est livré à VS 2012)

Pour convertir le projet VS 2010 en VS2012, il n’est pas nécessaire de modifier manuellement le fichier de solution ou «Enregistrer sous» sur le projet existant . Au lieu:

Si vous refusez la mise à jour lorsque vous y êtes invité, vous pouvez mettre à jour le projet ultérieurement en ouvrant le menu Projet et en choisissant Mettre à jour les projets VC ++ … [en haut des options du menu]

À partir de MSDN ” Comment: mettre à niveau des projets Visual C ++ vers Visual Studio 2012 ”
(Cette page était liée au lien MSDN de @Joachim , mais je voulais avoir la réponse ici sur SO car un certain nombre d’autres réponses suggéraient des solutions de contournement manuelles au lieu de cette fonctionnalité VS 2012)

Dans mon cas, j’avais quelques trucs Visual Source Safe (mon projet a été créé avec Visual Studio 2003/2005, oui, très ancien!)

Une fois que j’ai supprimé manuellement les éléments VSS, la conversion a réussi. PS: Je sais que c’est à propos de VS2010, mais peut-être que cela aide les autres.

Vous pouvez convertir un projet de VS2010 à VS2012 en procédant comme suit:

  1. Ajoutez le projet 2010 à votre solution VS2012 en faisant un clic droit sur votre solution dans l’Explorateur de solutions et en sélectionnant Ajouter -> Projet existant …

  2. Le projet apparaîtra dans la solution et aura (Visual Studio 2010) ajouté à son nom.

  3. Cliquez avec le bouton droit sur le projet ajouté et sélectionnez Propriétés.

  4. Dans le volet Propriétés de configuration -> Général, modifiez le paramètre dans le champ Platform Toolset à Visual Studio 2012 (v110)

  5. Répétez l’opération pour chaque type de configuration, par exemple Release et Debug.

Je suis tombé sur cette question en cherchant une solution à un problème spécifique: MSBuild ne parvenait pas à exécuter la cible Publish contre une solution VS2012 qui avait démarré dans VS2010 lorsqu’elle était appelée depuis la ligne de commande (notamment via TeamCity):

error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Windows Azure Tools\2.3\Microsoft.WindowsAzure.targets" was not found. Confirm that the path in the  declaration is correct, and that the file exists on disk. 

MSBuild recherchait les cibles Azure SDK 2.3 dans l’emplacement VS10 (C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Windows Azure Tools \ 2.3 \ Microsoft.WindowsAzure.targets). La cause est expliquée par Sayed Ibrahim Hashimi dans un billet de blog et, si j’ai bien compris, cela se résume à certaines décisions sockets tout en permettant la compatibilité entre les versions des fichiers de solution. La solution était simple: ajoutez la propriété VisualStudioVersion à l’invocation MSBuild, par exemple:

 msbuild.exe MyAwesomeWeb.sln /p:VisualStudioVersion=11.0 

En pratique, cela remplace les éléments suivants dans chaque fichier csproj:

 10.0 

Vraisemblablement, vous pourriez obtenir le même résultat en éditant tous ces éléments à la main pour remplacer 10.0 par 11.0, mais cela pourrait briser la compatibilité avec les versions précédentes – je ne l’ai pas essayé. Je n’ai pas non plus essayé une mise à jour de VS2013 pour voir si le problème persiste.

Donc, pour terminer en répondant à la question: oui, il y a quelques différences avant de “convertir” (en utilisant l’une des méthodes proposées par les autres répondeurs) et certaines différences subsistent par la suite.

Ceci est légèrement différent, mais dans le même sens, au cas où cela aiderait quelqu’un:

Je chargeais un projet où il semblait qu’il était en cours de chargement et continuait à afficher tous les projets comme indisponibles. Aucune erreur ne figurait dans le rapport de migration. J’ai essayé de recharger la solution et les projets plusieurs fois, en utilisant différentes méthodes, y compris des suggestions.

Enfin, j’ai trouvé une option “Résoudre les erreurs” en cliquant droit sur la solution dans l’Explorateur de solutions. VS a subi à nouveau un processus de chargement et cela a fonctionné; pas de problème.

Je ne sais pas ce que cela a fait différemment cette fois-ci, mais apparemment cela a fait une différence.

il est simple de simplement éditer le fichier .sol changer la version en 11

comme ça

Fichier Microsoft Visual Studio Solution, format version 12.00

Visual Studio 2012