Utiliser le multiciblage natif dans Visual Studio pour générer d’anciens projets

En règle générale, nous vous recommandons de mettre à jour vos projets quand vous installez la dernière version de Visual Studio. Le coût de la mise à jour de vos projets et de votre code est souvent plus que compensé par les avantages de la nouvelle IDE, compilateur, bibliothèques et outils. Toutefois, nous savons que vous ne serez peut-être pas en mesure de mettre à jour certains projets. Vous pouvez avoir des fichiers binaires liés à des bibliothèques ou plateformes plus anciennes qui, pour des raisons de maintenance, ne peuvent pas être mis à niveau. Votre code peut utiliser des constructions de langage non standard qui ne fonctionneraient pas si vous optiez pour un compilateur plus récent. Votre code peut s’appuyer sur des bibliothèques tierces compilées pour une version spécifique de Visual C++. Ou vous pouvez produire pour des tiers des bibliothèques qui doivent cibler une ancienne version de Visual C++ spécifique.

Heureusement, vous pouvez utiliser Visual Studio pour générer des projets qui ciblent des ensembles d’outils et des bibliothèques de compilateur plus anciens. Si vous disposez toujours des outils d’origine installés, vous n’avez pas besoin de mettre à niveau un projet de loin jusqu’à Visual Studio 2010 pour tirer parti des nouvelles fonctionnalités de l’IDE :

  • Nouvelles fonctionnalités de refactorisation C++ et fonctionnalités expérimentales pour l’édition
  • Nouvelles fenêtre de débogage Outils de diagnostics et fenêtre Liste d’erreurs
  • Fenêtre de gestion des points d’arrêt et des exceptions revisitée, nouveaux conseils sur les performances
  • Nouveaux outils de navigation et de recherche de code
  • Nouvelles corrections rapides C++ et les extensions Productivity Power Tools

Vous pouvez également cibler des projets Visual Studio 2008, mais vous ne pouvez pas les utiliser en l’état. Pour plus d’informations, consultez la section Instructions pour Visual Studio 2008.

Les dernières versions de Visual Studio prennent en charge le multiciblage natif et les allers-retours des projets. Grâce au multiciblage natif, la dernière version de l’IDE peut effectuer une génération à l’aide des ensembles d’outils installés par les versions antérieures de Visual Studio. Grâce à la procédure d’aller-retour, la dernière version de l’IDE peut charger les projets créés par une version précédente de l’IDE sans y apporter de modifications. Si vous installez la dernière version de Visual Studio côte à côte avec votre version existante, vous pouvez utiliser la nouvelle version de l’IDE avec le compilateur et les outils de la version existante pour générer vos projets. Les autres membres de votre équipe peuvent continuer à utiliser les projets dans la version antérieure de Visual Studio.

Quand vous utilisez un ensemble d’outils plus ancien, vous pouvez tirer parti de nombreuses fonctionnalités du dernier IDE, mais pas des dernières avancées des outils de génération, des bibliothèques et du compilateur C++. Par exemple, vous ne pouvez pas utiliser les nouvelles améliorations de la conformité au langage, les nouvelles fonctionnalités de débogage et d’analyse du code ou profiter du débit de génération plus rapide qu’offre le dernier ensemble d’outils. En outre, certaines fonctionnalités de l’IDE ne sont pas compatibles avec les ensembles d’outils plus anciens. Par exemple, les informations de type peuvent être manquantes dans le Profileur de mémoire et l’opération de refactorisation Convertir en littéraux de chaîne brute génère du code conforme à C++11 qui ne sera pas compilé lorsque vous utilisez visual Studio 2012 ou des ensembles d’outils plus anciens.

Comment utiliser le multiciblage natif dans Visual Studio

Une fois que vous avez installé Visual Studio côte à côte avec l’ancienne version, ouvrez votre projet existant dans la nouvelle version de Visual Studio. Quand le projet est chargé, Visual Studio vous demande si vous souhaitez le mettre à niveau pour utiliser les derniers compilateur et bibliothèques C++. Étant donné que vous souhaitez que le projet conserve les anciens compilateur et bibliothèques, choisissez le bouton Annuler.

Visual Studio est persistant quant à la mise à niveau de votre projet. Pour éviter de voir la boîte de dialogue de mise à niveau chaque fois que vous chargez le projet, vous pouvez définir la propriété suivante dans vos projets, ou dans les .props fichiers .targets qu’ils importent :

<VCProjectUpgraderObjectName>NoUpgrade</VCProjectUpgraderObjectName>

Vous devez supprimer cette propriété quand vous souhaitez mettre à niveau vos projets.

Si vous choisissez de ne pas effectuer de mise à niveau, Visual Studio n’apporte aucune modification à vos fichiers projet ou solution. Lorsque vous générez le projet, les fichiers binaires générés sont entièrement compatibles avec ceux que vous avez créés avec l’ancienne version de Visual Studio, car Visual Studio utilise le même compilateur C++ et lie les mêmes bibliothèques que votre IDE plus ancien fourni avec. C’est également pourquoi la boîte de dialogue de mise à niveau vous avertit de conserver l’ancienne version de Visual Studio installée si vous choisissez Annuler.

Instructions pour Visual Studio 2008

Visual Studio 2008 avait son propre système de build dédié pour C++ appelé VCBuild. Dans Visual Studio 2010, les projets Visual Studio C++ ont été modifiés pour utiliser MSBuild. Que vous mettez à niveau définitivement ou multi-ciblage, vous devez passer à une étape de mise à jour pour générer vos projets Visual Studio 2008 dans la dernière version de Visual Studio. Votre projet mis à jour génère toujours des fichiers binaires qui sont entièrement compatibles avec les fichiers binaires créés à l’aide de l’IDE de Visual Studio 2008.

Tout d’abord, outre la version actuelle de Visual Studio, vous devez installer Visual Studio 2010 sur le même ordinateur que Visual Studio 2008. Seul Visual Studio 2010 installe les scripts MSBuild nécessaires au ciblage des projets Visual Studio 2008.

Ensuite, vous devez mettre à jour vos projets et solution Visual Studio 2008 vers la version actuelle de Visual Studio. Nous vous recommandons de créer une sauvegarde de vos projets et de vos fichiers solution avant d’effectuer la mise à niveau. Pour démarrer le processus de mise à niveau, ouvrez la solution dans la version actuelle de Visual Studio. Quand vous obtenez l’invite de mise à niveau, passez en revue les informations présentées, puis choisissez OK pour démarrer la mise à niveau. Si la solution a plusieurs projets, vous devez mettre à jour chaque projet. L’Assistant crée .vcxproj des fichiers projet côte à côte avec les fichiers existants .vcproj . Tant que vous disposez également d’une copie du fichier d’origine .sln , la mise à niveau n’a aucun autre effet sur vos projets Visual Studio 2008 existants.

Remarque

Les étapes suivantes s’appliquent uniquement aux scénarios multi-ciblage. Si vous envisagez de mettre à niveau définitivement le projet vers un ensemble d’outils ultérieur, l’étape suivante consiste à enregistrer le projet, à l’ouvrir dans la dernière version de Visual Studio et à résoudre les problèmes de génération qui s’y affichent.

Une fois la mise à niveau terminée, si le rapport de journal contient des erreurs ou des avertissements pour l’un de vos projets, examinez-les attentivement. La conversion de VCBuild vers MSBuild peut entraîner des problèmes. Veillez à comprendre et à implémenter toutes les actions répertoriées dans le rapport. Pour plus d’informations sur le rapport de journal de mise à niveau et les problèmes qui peuvent se produire lors de la conversion de VCBuild en MSBuild, consultez le billet de blog C++ Native Multi-Targeting.

Une fois la mise à niveau terminée et que vous avez résolu tous les problèmes dans le fichier journal, votre solution cible désormais l’ensemble d’outils le plus récent. En guise d’étape finale, modifiez les propriétés de chaque projet dans la solution pour utiliser l’ensemble d’outils de Visual Studio 2008. Une fois la solution chargée dans la version actuelle de Visual Studio, pour chaque projet dans la solution, ouvrez la boîte de dialogue Pages de propriétés liée au projet : cliquez avec le bouton droit sur le projet dans l’Explorateur de solutions, puis sélectionnez Propriétés. Dans la boîte de dialogue Pages de propriétés, définissez la valeur de la liste déroulante Configuration sur Toutes les configurations. Dans Propriétés de configuration, sélectionnez Général, puis définissez Ensemble d’outils de plateforme sur Visual Studio 2008 (v90).

Après cette modification, le compilateur et les bibliothèques Visual Studio 2008 sont utilisés pour générer les fichiers binaires du projet quand vous générez la solution dans la version actuelle de Visual Studio.

Installer un ancien ensemble d’outils Visual Studio

Vous pouvez avoir un ancien projet Visual Studio C++ que vous ne pouvez pas ou ne souhaitez pas mettre à niveau. Pour la générer, vous avez besoin de la version de l’ensemble d’outils de plateforme qui correspond à votre projet. Pour obtenir l’ensemble d’outils, vous pouvez installer l’édition Gratuite de Visual Studio Community ou Express de la version dont vous avez besoin. Chaque version de Visual Studio à partir de Visual Studio 2008 peut installer le compilateur, les outils et les bibliothèques dont vous avez besoin pour cibler cette version à partir de la version actuelle de Visual Studio. Dans le Centre de téléchargement Microsoft, recherchez une version particulière de Visual Studio, puis téléchargez-la. Assurez-vous de choisir les options d’installation C++ pendant l’installation. Une fois l’installation terminée, exécutez cette version de Visual Studio pour installer les mises à jour. En outre, vérifiez si des modifications Windows Update sont requises. Vous pouvez être amené à répéter ce processus de vérification de mise à jour plusieurs fois pour obtenir chaque mise à jour.

Pour connaître les téléchargements actuellement disponibles, consultez Télécharger d’anciennes versions de Visual Studio.

Quand ces produits sont installés, la liste déroulante de propriétés Ensemble d’outils de plateforme dans la boîte de dialogue Pages de propriétés est automatiquement mise à jour pour afficher les ensembles d’outils disponibles. Vous pouvez maintenant utiliser la dernière version de Visual Studio pour générer des projets qui utilisent une version antérieure de l’ensemble d’outils : aucune conversion ni mise à niveau requise.

Voir aussi

Mise à niveau de projets à partir de versions antérieures de Visual C++
Améliorations de la conformité de C++ dans Visual Studio