Mettre à niveau des projets C++ à partir de versions antérieures de Visual Studio

Pour mettre à niveau un projet créé dans une version antérieure de Visual Studio, ouvrez simplement le projet dans la dernière version de Visual Studio. Visual Studio propose de mettre à niveau le projet vers le schéma actuel.

Si vous choisissez Non, le projet n’est pas mis à niveau. Pour les projets créés dans Visual Studio 2010 et versions ultérieures, vous pouvez toujours utiliser le projet dans la version la plus récente de Visual Studio. Définissez simplement les propriétés de votre projet pour continuer à cibler l’ensemble d’outils plus ancien. Si vous conservez l’ancienne version de Visual Studio sur votre ordinateur, son ensemble d’outils est disponible dans les versions ultérieures. Par exemple, si votre projet doit continuer à s’exécuter sur Windows XP, vous pouvez effectuer une mise à niveau vers Visual Studio 2019. Vous spécifiez ensuite l’ensemble d’outils comme v141_xp ou une version antérieure dans les propriétés de votre projet. Pour plus d’informations, consultez Utiliser le multiciblage natif dans Visual Studio pour générer d’anciens projets.

Si vous choisissez Oui, le projet est mis à niveau en place. Elle ne peut pas être convertie en version antérieure. Dans les scénarios de mise à niveau, c’est pourquoi il est recommandé d’effectuer une copie de sauvegarde des fichiers projet et solution existants.

Remarque

Visual Studio 2022 prend en charge la mise à niveau des types de projet qui ont ou .dsp des .dsw extensions. Vous pouvez utiliser une version antérieure de Visual Studio, telle que Visual Studio 2019, pour mettre à niveau ces projets, puis les mettre à niveau dans Visual Studio 2022 pour utiliser les outils et fonctionnalités les plus récents de Visual Studio.

Mettre à niveau des rapports

Lorsque vous mettez à niveau un projet, vous obtenez un rapport de mise à niveau. Le rapport est également enregistré dans votre dossier de projet en tant que UpgradeLog.htm. Le rapport de mise à niveau affiche un résumé des problèmes détectés lors de la conversion. Il répertorie quelques informations sur les modifications qui ont été apportées, notamment :

  • Propriétés du projet.

  • Inclure des fichiers.

  • Code qui ne compile plus propre ly en raison d’améliorations ou de modifications de conformité du compilateur dans la norme.

  • Code qui s’appuie sur des fonctionnalités Visual Studio ou Windows qui ne sont plus disponibles. Ou, les fichiers d’en-tête qui ne sont pas inclus dans une installation par défaut de Visual Studio ou qui ont été supprimés du produit.

  • Code qui ne se compile plus en raison de modifications apportées aux API telles que les API renommées, les signatures de fonction modifiées ou les fonctions déconseillées.

  • Code qui ne se compile plus en raison des modifications apportées aux diagnostics, par exemple un avertissement devenant une erreur

  • Erreurs de l’éditeur de liens en raison des bibliothèques qui ont été modifiées, en particulier lorsque /NODEFAULTLIB est utilisé.

  • Erreurs d’exécution ou résultats inattendus en raison des modifications de comportement.

  • Erreurs introduites dans les outils. Si vous rencontrez un problème, signalez-le à l’équipe Visual C++ via vos canaux de support normaux ou à l’aide de la page Communauté des développeurs Visual Studio C++.

Certains projets et solutions mis à niveau peuvent être générés avec succès sans modification. Toutefois, la plupart des projets nécessitent probablement des modifications apportées aux paramètres du projet et à votre code source. Il n’existe aucun moyen correct de résoudre ces problèmes, mais nous vous recommandons d’utiliser une approche par phases. Avant de commencer, consultez vue d’ensemble des problèmes de mise à niveau potentiels pour plus d’informations sur de nombreux types d’erreurs courantes.

  1. Définissez l’ensemble d’outils de plateforme, la norme du langage C++ et la version du Kit de développement logiciel (SDK) Windows (le cas échéant) sur les versions préférées. (Propriétés de configuration de>projet>, propriétés>générales)

  2. Si vous avez beaucoup d’erreurs, vous pouvez désactiver temporairement certaines options pendant que vous les corrigez. Pour désactiver l’option, utilisez le langage C/C++>Propriétés de configuration /permissive- des propriétés>>du projet.> Pour désactiver l’option d’analyse du code, utilisez Project>Properties>Configuration Properties>Code Analysis.

  3. Vérifiez que toutes les dépendances sont présentes et que les chemins d’accès ou les emplacements de bibliothèque sont corrects. (Propriétés de>configuration de projet>, propriétés>de configuration VC++ Répertoires)

  4. Identifiez et corrigez les erreurs provoquées par des références aux API qui n’existent plus.

  5. Corrigez les erreurs restantes qui empêchent la compilation. Reportez-vous à Vue d’ensemble des problèmes de mise à niveau potentiels pour les correctifs pour les erreurs courantes.

  6. Réactivez /permissive- et corrigez les nouvelles erreurs provoquées par le code non conforme précédemment compilé dans MSVC.

  7. Activez l’analyse du code pour identifier les problèmes potentiels ou les modèles de codage obsolètes qui ne sont plus considérés comme acceptables. Si l’analyse du code signale de nombreuses erreurs, vous pouvez d’abord désactiver certains avertissements pour vous concentrer sur les plus importants. L’IDE peut vous aider à résoudre rapidement certains types de problèmes.

  8. Envisagez d’autres opportunités pour moderniser le code. Par exemple, remplacez les structures et algorithmes de données personnalisés par ceux de la bibliothèque standard C++ ou de la bibliothèque open source Boost. En utilisant des fonctionnalités standard, vous facilitez la gestion du code par d’autres utilisateurs. Vous pouvez être certain que ce code a été bien testé et examiné par de nombreux experts du comité des normes et de la communauté C++ plus large.

Pour les erreurs difficiles à corriger, vous pouvez rechercher des solutions ou publier une question sur microsoft Learn Q&A. Pour des problèmes dans le compilateur et les outils C++, essayez le site web de la Communauté des développeurs C++.

Contenu de cette section

Vue d’ensemble des problèmes de mise à niveau potentiels
Mettre à niveau votre code vers la bibliothèque Universal CRT
Mettre à jour WINVER et _WIN32_WINNT
Résoudre vos dépendances aux éléments internes de bibliothèque
Problèmes de migration de virgule flottante
Fonctionnalités C++ déconseillées dans Visual Studio
VCBuild et MSBuild
Bibliothèques tierces de port

Voir aussi

Nouveautés de Visual C++ dans Visual Studio
Historique des modifications de Visual C++ entre 2003 et 2015
Comportement non standard
Applications de données de port