Informations de référence sur la migration et la mise à niveau de projets pour Visual Studio 2017Project migration and upgrade reference for Visual Studio 2017

Chaque nouvelle version de Visual Studio prend généralement en charge la plupart des précédents types de projets, de fichiers et d’autres ressources.Each new version of Visual Studio generally supports most previous types of projects, files, and other assets. Vous pouvez les utiliser comme d’habitude. Si vous n’avez pas besoin de fonctionnalités récentes, Visual Studio tente de conserver la compatibilité descendante avec les versions antérieures telles que Visual Studio 2015, Visual Studio 2013 et Visual Studio 2012.You can work with them as you always have, and provided that you don't depend on newer features, Visual Studio generally tries to preserve backwards compatibility with previous versions like Visual Studio 2015, Visual Studio 2013, and Visual Studio 2012. (Pour connaître les fonctionnalités spécifiques à telle ou telle version, consultez les Notes de publication.)(See the Release Notes for which features are specific to which versions.)

La prise en charge de certains types de projet change également avec le temps.Support for some project types also changes over time. Une version plus récente de Visual Studio peut cesser de prendre en charge certains projets, ou nécessiter la mise à jour d’un projet et lui faire perdre sa compatibilité descendante.A newer version of Visual Studio may no longer support certain projects at all, or requires updating a project such that it's no longer backwards compatible. Pour connaître l’état actuel des problèmes de migration, reportez-vous au site de la communauté des développeurs Visual Studio.For current status on migration issues, refer to the Visual Studio Developer Community site.

Cet article fournit des détails uniquement sur les types de projets pouvant être migrés par Visual Studio 2017.This present article provides details only for project types that Visual Studio 2017 can migrate. L’article exclut les types de projets qui ne sont plus pris en charge dans Visual Studio 2017 et qui ne peuvent donc pas être migrés.The article excludes project types that are no longer supported in Visual Studio 2017 and cannot therefore be migrated. Il exclut également les types de projets pris en charge qui ne présentent aucun problème de migration ; cette liste se trouve sous Ciblage et compatibilité de la plateforme.The article also excludes supported project types that have no migration issues; that list is found on Platform Targeting and Compatibility.

Important

Certains types de projet nécessitent l’installation des charges de travail appropriées via Visual Studio Installer.Certain project types require installing the appropriate workloads through the Visual Studio installer. Si la charge de travail n’est pas installée, Visual Studio signale un type de projet inconnu ou non compatible.If you don't have the workload installed, Visual Studio reports an unknown or incompatible project type. Dans ce cas, vérifiez vos options d’installation et réessayez.In that case, check your installation options and try again. Là encore, consultez l’article Ciblage et compatibilité de la plateforme pour plus d’informations sur la prise en charge de projets dans Visual Studio 2017.Again, see the Platform Targeting and Compatibility article for details on project support in Visual Studio 2017.

Types de projetProject types

La liste suivante décrit la prise en charge dans Visual Studio 2017 pour les projets qui ont été créés dans des versions antérieures.The following list describes support in Visual Studio 2017 for projects that were created in earlier versions.

Si un type de projet ou de fichier n’apparaît pas alors qu’il le devrait, consultez la version Visual Studio 2015 de cet article et utilisez l’option d’envoi de commentaires sur la documentation située au bas de cette page pour fournir les détails de votre projet.If you don't see a project or file type listed here that should be, consult the Visual Studio 2015 version of this article and use the "Give documentation feedback" option at the bottom of this page to provide details of your project. (Si vous souhaitez obtenir une réponse, utilisez les commentaires de la documentation plutôt que le contrôle « Cette page est-elle utile ? »,(If you'd like a response, use the documentation feedback rather than the anonymous "Is this page helpful?" qui est anonyme.)control.)

Type de projetType of Project AssistanceSupport
Projets .NET Core (.xproj).NET Core projects (xproj) Les projets créés avec Visual Studio 2015 utilisaient des outils d’aperçu qui incluaient un fichier projet xproj.Projects created with Visual Studio 2015 used preview tooling that included an xproj project file. Quand vous ouvrez un fichier xproj avec Visual Studio 2017, vous êtes invité à faire migrer le fichier vers le format csproj (une sauvegarde du fichier xproj est effectuée).When you open an xproj file with Visual Studio 2017, you are prompted to migrate the file to the csproj format (a backup of the xproj file is made). Ce format csproj pour les projets .NET Core n’est pas pris en charge dans Visual Studio 2015 et antérieur.This csproj format for .NET Core projects is not supported in Visual Studio 2015 and earlier. Le format xproj n’est pas pris en charge dans Visual Studio 2017, sauf pour la migration vers csproj.The xproj format is not supported in Visual Studio 2017 other than for migration to csproj. Pour plus d’informations, consultez Migration de projets .NET Core au format csproj.For more information, see Migrating .NET Core projects to the csproj format.
Application web ASP.NET et application web ASP.NET Core avec Application Insights activéASP.NET Web Application and ASP.NET Core Web Application with Application Insights enabled Pour chaque utilisateur de Visual Studio, les informations sur les ressources sont stockées dans le Registre pour chaque instance utilisateur.For each Visual Studio user, resource information is stored in the registry per user instance. Ces informations sont utilisées quand un utilisateur n’a pas de projet ouvert et qu’il souhaite rechercher des données Azure Application Insights.This information is used when a user doesn't have a project opened and wants to search Azure Application Insights data. Visual Studio 2015 n’utilise pas le même emplacement du Registre que Visual Studio 2017 et n’entre pas en conflit.Visual Studio 2015 uses different registry location than Visual Studio 2017 and does not conflict.

Une fois qu’un utilisateur crée une application web ASP.NET ou une Application web ASP.NET Core, la ressource est stockée dans le fichier .suo.Once a user creates an ASP.NET Web Application or ASP.NET Core Web Application, the resource is stored in the .suo file. L’utilisateur peut ouvrir le projet dans Visual Studio 2015 ou 2017 et les informations de ressource servent dans les deux cas tant que Visual Studio prend en charge les projets et solutions utilisés dans les deux versions.The user can open the project in Visual Studio 2015 or 2017 and the resource information is used for both as long as Visual Studio supports projects and solutions being used across both versions. Les utilisateurs doivent s’authentifier une seule fois sur chaque produit.Users need to authenticate once on each product. Par exemple, si un projet est créé avec Visual Studio 2015 et ouvert dans Visual Studio 2017, l’utilisateur doit s’authentifier sur Visual Studio 2017.For example, if a project is created with Visual Studio 2015 and opened in Visual Studio 2017, the user needs to authenticate on Visual Studio 2017.
C#/Visual Basic Webform ou Windows FormC#/Visual Basic Webform or Windows Form Vous pouvez ouvrir le projet dans Visual Studio 2017 et Visual Studio 2015.You can open the project in Visual Studio 2017 and Visual Studio 2015.
Projets de test unitaire de base de données (csproj, vbproj)Database Unit Test Projects (csproj, .vbproj) Les anciens projets de test unitaire de données sont chargés dans Visual Studio 2017, mais ils utilisent la version de dépendances placée dans le GAC.Older Data Unit test projects are loaded in Visual Studio 2017 but use the GAC'd version of dependencies. Pour mettre à niveau le projet de test unitaire afin d’utiliser les dernières dépendances, cliquez avec le bouton droit sur le projet dans l’Explorateur de solutions, puis sélectionnez Convertir en projet de tests unitaires SQL Server.To upgrade the unit test project to use the latest dependencies, right-click on the project in Solution Explorer and select Convert to SQL Server Unit Testing Project....
F#F# Visual Studio 2017 peut ouvrir les projets créés dans Visual Studio 2013 et 2015.Visual Studio 2017 can open projects created in Visual Studio 2013 and 2015. Pour activer les fonctionnalités de Visual Studio 2017 dans ces projets, toutefois, ouvrez les propriétés du projet et définissez la cible fsharp.core sur F# 4.1.To enable Visual Studio 2017 features in these projects, however, open the project properties and change target fsharp.core to F# 4.1. Notez également que l’option Prise en charge du langage F# dans le programme d’installation de Visual Studio n’est pas sélectionnée par défaut avec les charges de travail .NET. Vous devez l’inclure en sélectionnant cette option pour la charge de travail, ou en la sélectionnant à partir de l’onglet Composants individuels sous Activités de développement.Note also that the F# language support option in the Visual Studio installer is not selected by default with .NET workloads; you must include it by selecting that option for the workload, or selecting it from the Individual components tab under Development activities.
InstallShieldInstallShield
Installation de MSIMSI setup
Les projets d’installation créés dans Visual Studio 2010 peuvent être ouverts dans les versions ultérieures à l’aide de l’extension des projets d’installation Visual Studio.Installer projects created in Visual Studio 2010 can be opened in later versions with the help of the Visual Studio Installer Projects extension. Consultez également l’extension WiX Toolset Visual Studio 2017.Also see the WiX Toolset Visual Studio 2017 Extension. InstallShield Limited Edition n’est plus inclus dans Visual Studio.InstallShield Limited Edition is no longer included with Visual Studio. Vérifiez la disponibilité pour Visual Studio 2017 auprès de Flexera Software.Check with Flexera Software about availability for Visual Studio 2017.
LightSwitchLightSwitch LightSwitch n’est plus pris en charge dans Visual Studio 2017.LightSwitch is no longer supported in Visual Studio 2017. Les projets créés avec Visual Studio versions 2012 et antérieures et ouverts dans Visual Studio 2013 ou Visual Studio 2015 sont mis à niveau et ne peuvent être ouverts par la suite que dans Visual Studio 2013 ou Visual Studio 2015.Projects created with Visual Studio 2012 and earlier opened in Visual Studio 2013 or Visual Studio 2015 are upgraded and can be opened only in Visual Studio 2013 or Visual Studio 2015 thereafter.
Microsoft Azure Tools pour Visual StudioMicrosoft Azure Tools for Visual Studio Pour ouvrir ces types de projets, installez tout d’abord le kit SDK Microsoft Azure pour .NET., puis ouvrez le projet.To open these types of projects, first install the Azure SDK for .NET, then open the project. Si nécessaire, votre projet est mis à jour.If necessary, your project is updated.
Framework du modèle ASP.NET MVC (Model-View-Controller)Model-View-Controller framework (ASP.NET MVC) Prise en charge des versions MVC et de Visual Studio :Support for MVC versions and Visual Studio:
  • Visual Studio 2010 SP1 prend en charge MVC 2 et MVC 3, tandis que la prise en charge de MVC 4 est ajoutée par le biais du téléchargement d’ASP.NET 4 MVC 4 pour Visual Studio 2010 SP1.Visual Studio 2010 SP1 supports MVC 2 and MVC 3; MVC 4 support is added through the ASP.NET 4 MVC 4 for Visual Studio 2010 SP1 download
  • Visual Studio 2012 prend en charge uniquement MVC 3 et MVC 4.Visual Studio 2012 supports only MVC 3 and MVC 4
  • Visual Studio 2013 prend en charge uniquement MVC 4 et MVC 5.Visual Studio 2013 supports only MVC 4 and MVC 5
  • Visual Studio 2017 et Visual Studio 2015 prennent en charge MVC 4 (vous pouvez ouvrir des projets existants, mais pas en créer) et MVC 5.Visual Studio 2017 and Visual Studio 2015 supports MVC 4 (you can open existing projects but not create new ones) and MVC 5

Mise à niveau de versions MVC :Upgrading MVC versions:
ModélisationModeling Si vous permettez à Visual Studio de mettre à jour le projet automatiquement, vous pouvez l’ouvrir dans Visual Studio 2015, Visual Studio 2013 ou Visual Studio 2012.If you allow Visual Studio to update the project automatically, you can open it in Visual Studio 2015, Visual Studio 2013, or Visual Studio 2012.

Le format du projet de modélisation n’a pas changé entre Visual Studio 2015 et Visual Studio 2017, et vous pouvez ouvrir et modifier le projet dans les deux versions.The format of the modeling project has not changed between Visual Studio 2015 and Visual Studio 2017 and the project can be opened and modified in either version. Toutefois, il existe des différences de comportement dans Visual Studio 2017 :However, there are differences in behavior in Visual Studio 2017:
  • Les projets de modélisation sont désormais appelés projets « Validation de dépendance » dans les menus et les modèles.Modeling projects are now referred to as "Dependency Validation" projects in the menus and templates.
  • Les diagrammes UML ne sont plus pris en charge dans Visual Studio 2017.UML diagrams are no longer supported in Visual Studio 2017. Les fichiers UML restent dans l’Explorateur de solutions, mais s’ouvrent en tant que fichiers XML.UML files are listed in the Solution Explorer as before but are opened as XML files. Utilisez Visual Studio 2015 pour afficher, créer ou modifier des diagrammes UML.Use Visual Studio 2015 to view, create, or edit UML diagrams.
  • Dans Visual Studio 2017, la validation des dépendances architecturales n’est plus effectuée pendant la génération du projet de modélisation,In Visual Studio 2017, validation of architectural dependencies is no longer performed when the modeling project is built. mais à chaque génération d’un projet de code.Instead, validation is carried out as each code project is built. Ce changement n’affecte pas le projet de modélisation, mais il nécessite des modifications dans les projets de code en cours de validation.This change does not affect the modeling project, but it does require changes to the code projects being validated. Visual Studio 2017 peut effectuer automatiquement les modifications nécessaires dans les projets de code (plus d’informations).Visual Studio 2017 can automatically make the necessary changes to the code projects (more information).
Installation de MSI (vdproj)MSI Setup (vdproj) Consultez les informations relatives aux projets InstallShield.See InstallShield Projects.
Office 2007 VSTOOffice 2007 VSTO Requiert une mise à niveau définitive pour Visual Studio 2017.Requires a one-way upgrade for Visual Studio 2017.
Office 2010 VSTOOffice 2010 VSTO Si le projet cible .NET Framework 4, vous pouvez l’ouvrir dans Visual Studio 2010 SP1 et les versions ultérieures.If the project targets the .NET Framework 4, you can open it in Visual Studio 2010 SP1 and later. Tous les autres projets nécessitent une mise à niveau définitive.All other projects require a one-way upgrade.
Service Fabric (sfproj)Service Fabric (sfproj) Les projets de l’application Service Fabric peuvent être ouverts dans Visual Studio 2015 ou Visual Studio 2017, sauf si le projet de l’application Service Fabric fait référence à un projet de service ASP.NET Core.Service Fabric Application Projects can be opened in either Visual Studio 2015 or Visual Studio 2017, unless the Service Fabric Application project references an ASP.NET Core service project. Les projets Service Fabric de Visual Studio 2015 qui sont ouverts dans Visual Studio 2017 sont unidirectionnellement migrés du format xproj au format csproj.Service Fabric projects from Visual Studio 2015 that are opened in Visual Studio 2017 are one-way migrated from the xproj format to csproj. Consultez « Projets .NET Core (xproj) » plus haut dans cette table.See ".NET Core projects (xproj)" earlier in this table.
SharePoint 2010SharePoint 2010 Lorsqu’un projet de solution SharePoint est ouvert avec Visual Studio 2017, il est mis à niveau vers SharePoint 2013 ou SharePoint 2016.When a SharePoint solution project is opened with Visual Studio 2017, it's upgraded to either SharePoint 2013 or SharePoint 2016. La charge de travail « Développement .NET Desktop » doit être installée dans Visual Studio 2017 pour la mise à niveau.The ".NET Desktop Development" workload must be installed in Visual Studio 2017 for the upgrade.

Pour plus d’informations sur la mise à niveau des projets SharePoint, consultez les articles Mettre à niveau vers SharePoint 2013, Mettre à jour le flux de travail dans SharePoint Server 2013 et Créer une batterie de serveurs SharePoint Server 2016 pour une mise à niveau d’attachement de base de données.For more information about how to upgrade SharePoint projects, see Upgrade to SharePoint 2013, Update Workflow in SharePoint Server 2013, and Create the SharePoint Server 2016 farm for a database attach upgrade.
SharePoint 2016SharePoint 2016 Les projets de complément SharePoint créés dans Office Developer Tools Preview 2 ne peuvent pas être ouverts dans Visual Studio 2017.SharePoint Add-In projects created in Office Developer Tools Preview 2 cannot be opened in Visual Studio 2017. Pour contourner cette limite, mettez à jour MinimumVisualStudioVersion avec la valeur 12.0 et MinimumOfficeToolsVersion avec la valeur 12.2 dans le fichier csproj vbproj.To work around this limitation, update the MinimumVisualStudioVersion to 12.0 and MinimumOfficeToolsVersion to 12.2 in the csproj vbproj file.
SilverlightSilverlight Les projets Silverlight ne sont pas pris en charge dans Visual Studio 2017.Silverlight projects not supported in Visual Studio 2017. Pour gérer des applications Silverlight, continuez à utiliser Visual Studio 2015.To maintain Silverlight applications, continue to use Visual Studio 2015.
SQL Server Reporting Services et SQL Server Analysis Services (SSRS, SSDT, SSAS, MSAS)SQL Server Reporting Services and SQL Server Analysis Services (SSRS, SSDT, SSAS, MSAS) La prise en charge de ces types de projets est assurée par le biais de deux extensions de la galerie Visual Studio : Microsoft Analysis Services Modeling Projects et Microsoft Reporting Services Projects.Support for these project types is provided through two extensions in the Visual Studio Gallery: Microsoft Analysis Services Modeling Projects and Microsoft Reporting Services Projects. La prise en charge de SSDT est également incluse dans la charge de travail Stockage et traitement des données dans Visual Studio 2017.SSDT support is also included with the Data Storage and Processing workload in Visual Studio 2017.
SQL Server Integration Services (SSIS)SQL Server Integration Services (SSIS) La prise en charge de Visual Studio 2017 est disponible par le biais de SQL Server Data Tools (SSDT).Support for Visual Studio 2017 is available through the SQL Server Data Tools (SSDT). Pour plus d’informations, consultez le blog de SQL Server Integration Services.For more information, see the SQL Server Integration Services blog.
Visual C++Visual C++ Vous pouvez utiliser Visual Studio 2017 pour travailler sur des projets créés dans des versions antérieures de Visual Studio, jusqu’à Visual Studio 2010.You can use Visual Studio 2017 to work in projects that were created in earlier versions of Visual Studio back to Visual Studio 2010. À la première ouverture du projet, il est possible d’effectuer une mise à niveau vers la dernière version du compilateur et de l’ensemble d’outils, ou bien de continuer d’utiliser ceux d’origine.When you first open the project, you have the option to upgrade to the latest compiler and toolset or to continue using the original ones. Si vous choisissez de rester sur les originaux, Visual Studio 2017 ne modifie pas le fichier projet et utilise l’ensemble d’outils de l’ancienne installation de Visual Studio pour générer votre projet.If you choose to keep using the original ones, Visual Studio 2017 does not modify the project file, and uses the toolset from the earlier Visual Studio installation to build your project. En conservant les options d’origine, vous pouvez toujours ouvrir le projet dans la version d’origine de Visual Studio, le cas échéant.Keeping the original options means you can still open the project in the original version of Visual Studio if necessary. Pour plus d’informations, consultez Utiliser le multiciblage natif dans Visual Studio pour générer d’anciens projets.For more information, see Use native multi-targeting in Visual Studio to build old projects.
Extensibilité de Visual Studio/VSIXVisual Studio Extensibility/VSIX Un projet pour lequel le paramètre MinimumVersion est défini sur 14.0 ou moins est mis à jour pour déclarer 15.0 comme version minimale, ce qui empêche son ouverture dans les versions antérieures de Visual Studio.Projects with MinimumVersion 14.0 or less are updated to declare MinimumVersion 15.0, which prevents the project from being opened in earlier versions of Visual Studio. Pour permettre l’ouverture d’un projet dans les versions antérieures, définissez MinimumVersion sur $(VisualStudioVersion).To allow a project to open in earlier versions, set MinimumVersion to $(VisualStudioVersion). Consultez aussi Guide pratique pour migrer les projets d’extensibilité vers Visual Studio 2017.See also How to: Migrate Extensibility Projects to Visual Studio 2017.
Visual Studio Lab ManagementVisual Studio Lab Management Vous pouvez utiliser Microsoft Test Manager ou Visual Studio 2010 SP1 et versions ultérieures pour ouvrir les environnements créés dans une de ces versions.You can use Microsoft Test Manager or Visual Studio 2010 SP1 and later to open environments created in any of these versions. Toutefois, dans le cas de Visual Studio 2010 SP1, pour pouvoir créer des environnements, la version de Microsoft Test Manager doit correspondre à la version de Team Foundation Server.However, for Visual Studio 2010 SP1 the version of Microsoft Test Manager must match the version of Team Foundation Server before you can create environments.
Visual Studio Tools pour Apache CordovaVisual Studio Tools for Apache Cordova Les projets peuvent être ouverts dans Visual Studio 2017, mais ils ne sont pas rétrocompatibles.Projects can be opened in Visual Studio 2017, but are not backwards compatible. Quand vous ouvrez un projet à partir de Visual Studio 2015, vous êtes invité à autoriser que des modifications soient apportées à votre projet.Upon opening a project from Visual Studio 2015, you're prompted to allow modifications to your project. Cette modification permet de mettre à niveau le projet afin qu’il utilise des ensembles d’outils au lieu d’un fichier taco.json pour gérer les versions de la bibliothèque Cordova, ses plateformes, ses plug-ins, ainsi que ses dépendances node/npm.This modification upgrades the project to use toolsets instead of a taco.json file to manage the versioning of the Cordova library, its platforms, its plugins, and its node/npm dependencies. Pour plus d’informations, consultez le guide de migration.See the migration guide for more information.
Déploiement Web (wdproj)Web Deployment (wdproj) La prise en charge des projets de déploiement Web dans Visual Studio 2012 a été supprimée avec l’ajout de la prise en charge du profil de publication.Support for Web Deployment projects was removed in Visual Studio 2012 with the addition of publish profile support. Étant donné qu’il n’y a pas d’équivalent dans Visual Studio 2017, il n’existe aucun chemin de migration automatique de ces projets.Because there is no equivalent in Visual Studio 2017, there is no automatic migration path for such projects. Au lieu de cela, ouvrez le fichier wdproj dans un éditeur de texte et copier-coller toutes les personnalisations dans à le fichier pubxml (profil de publication), comme décrit dans StackOverflow.Instead, open the wdproj file in a text editor and copy-paste any customizations into to the pubxml (publish profile) file, as described on StackOverflow. Consultez également Plans concernant les projets de sites Web et de déploiement Web (blogs MSDN).Also see Plans regarding website and web deployment projects (MSDN blogs).
Windows Communication Foundation, Windows Workflow FoundationWindows Communication Foundation, Windows Workflow Foundation Vous pouvez ouvrir ce projet dans Visual Studio 2017, Visual Studio 2015, Visual Studio 2013 et Visual Studio 2012.You can open this project in Visual Studio 2017, Visual Studio 2015, Visual Studio 2013, and Visual Studio 2012
Windows Presentation FoundationWindows Presentation Foundation Vous pouvez ouvrir ce projet dans Visual Studio 2013, Visual Studio 2012 et Visual Studio 2010 SP1.You can open this project in Visual Studio 2013, Visual Studio 2012, and Visual Studio 2010 SP1.
Applications Windows Store/PhoneWindows Store/Phone apps Les projets pour Windows Store 8.1 et 8.0, et Windows Phone 8.1 et 8.0, ne sont pas pris en charge par Visual Studio 2017.Projects for Windows Store 8.1 and 8.0, and Windows Phone 8.1 and 8.0 are not supported in Visual Studio 2017. Pour gérer ces applications, continuez à utiliser Visual Studio 2015.To maintain these apps, continue to use Visual Studio 2015. Pour gérer les projets Windows Phone 7.x, utilisez Visual Studio 2012.To maintain Windows Phone 7.x projects, use Visual Studio 2012.

Comment Visual Studio décide quand migrer un projetHow Visual Studio decides when to migrate a project

En règle générale, chaque nouvelle version de Visual Studio cherche à maintenir une compatibilité avec les versions antérieures. Ainsi, vous pouvez ouvrir, modifier et générer le même projet dans différentes versions.Each new version of Visual Studio generally seeks to maintain compatibility with previous versions, such that the same project can be opened, modified, and built across different versions. Toutefois, en raison de certains changements inévitables au fil du temps, certains types de projet ne peuvent plus être pris en charge.However, there are inevitable changes over time such that some project types may no longer be supported. (Consultez Ciblage et compatibilité de la plateforme pour connaître les types de projet pris en charge dans Visual Studio 2017.) Dans certains cas, une version plus récente de Visual Studio ne charge pas le projet et n’offre pas de chemin de migration. Vous devez conserver ce projet dans une version antérieure de Visual Studio qui le prend en charge.(See Platform Targeting and Compatibility for which project types are supported in Visual Studio 2017.) In these cases, a newer version of Visual Studio won't load the project and doesn't offer a migration path; you need to maintain that project in a previous version of Visual Studio that does support it.

Dans d’autres cas, la version plus récente de Visual Studio peut ouvrir un projet, mais elle doit mettre à jour ou faire migrer le projet, ce qui le rend incompatible avec les versions antérieures.In other cases, the newer version of Visual Studio can open a project, but must update or migrate the project in such a way that might render it incompatible with previous versions. Visual Studio utilise un certain nombre de critères pour déterminer si une telle migration est nécessaire :Visual Studio uses a number of criteria to determine whether such migration is necessary:

  • Compatibilité avec les versions cibles des plateformes, jusqu’à Visual Studio 2013 RTM.Compatibility with the target versions of platforms, back to Visual Studio 2013 RTM.

  • Compatibilité des composants design-time avec les versions antérieures de Visual Studio.Compatibility of design-time assets with previous versions of Visual Studio. (Notamment différents canaux de Visual Studio 2017 ; Visual Studio 2015 RTM & Update 3 ; Visual Studio 2013 RTM & Update 5 ; Visual Studio 2012 Update 4 ; Visual Studio 2010 SP 1.) Quand des composants design-time dépréciés sont utilisés, Visual Studio 2017 doit pouvoir s’arrêter de manière appropriée sans les altérer. Ainsi, les versions antérieures peuvent toujours ouvrir le projet.(Namely different channels of Visual Studio 2017; Visual Studio 2015 RTM & Update 3; Visual Studio 2013 RTM & Update 5; Visual Studio 2012 Update 4; Visual Studio 2010 SP 1.) Visual Studio 2017 aims to fail gracefully with deprecated design-time assets without corrupting them, such that previous versions can still open the project.

  • Vérifier que les nouveaux composants design-time n’entraînent pas de problèmes de compatibilité avec les versions antérieures, jusqu’à Visual Studio 2013 RTM & Update 5.Whether new design time assets would break compatibility with previous versions down to Visual Studio 2013 RTM & Update 5.

Le propriétaire responsable du type de projet en question examine ces critères, puis prend les décisions qui s’imposent si la prise en charge, la compatibilité et la migration sont concernées.The engineering owner of the project type in question looks at these criteria and makes the call where support, compatibility, and migration are concerned. Encore une fois, Visual Studio essaie si possible de maintenir une compatibilité transparente entre les versions. Ainsi, vous pouvez utiliser une version donnée de Visual Studio pour créer et modifier des projets qui fonctionneront sans problème dans d’autres versions.Again, Visual Studio tries to maintain transparent compatibility between Visual Studio versions if possible, meaning that one can create and modify projects in one version of Visual Studio and it just works in other versions.

Toutefois, si une telle compatibilité n’est pas possible, comme dans certains types de projet décrits dans cet article, Visual Studio ouvre l’Assistant Mise à niveau pour apporter les changements unidirectionnels nécessaires.If such compatibility is not possible, however, as with some of the project types described in this article, then Visual Studio opens the upgrade wizard to make the necessary one-way changes.

De tels changements unidirectionnels peuvent impliquer un changement de la propriété ToolsVersion dans le fichier projet. Cela permet d’identifier précisément la version de MSBuild capable de transformer le code source du projet en artefacts exécutables et déployables, conformément à vos besoins.Such one-way changes may involve changing the ToolsVersion property in the project file, which denotes exactly which version of MSBuild can turn the project's source code into runnable and deployable artifacts that you ultimately want. En d’autres termes, ce qui rend un projet incompatible avec les versions antérieures de Visual Studio n’est pas la version proprement dite de Visual Studio, mais plutôt la version de MSBuild, laquelle est déterminée par ToolsVersion.That is, what renders a project incompatible with previous versions of Visual Studio is not the Visual Studio version, but the MSBuild version, as determined by ToolsVersion. Du moment que votre version de Visual Studio contient la chaîne d’outils MSBuild qui correspond à ToolsVersion dans un projet, Visual Studio peut appeler cette chaîne d’outils pour générer le projet.So long as your version of Visual Studio contains the MSBuild toolchain that matches the ToolsVersion in a project, then Visual Studio can invoke that toolchain to build the project.

Pour conserver une compatibilité maximale avec les projets créés dans des versions antérieures, Visual Studio 2017 inclut les chaînes d’outils MSBuild nécessaires à la prise en charge de ToolsVersion 15, 14, 12 et 4.To maintain maximum compatibility with projects created in older versions, Visual Studio 2017 includes the necessary MSBuild toolchains to support ToolsVersion 15, 14, 12, and 4. Les projets qui utilisent l’une de ces valeurs de ToolsVersion doivent entraîner la réussite de la build.Projects that use any of these ToolsVersion values should result in a successful build. (À condition, là encore, que Visual Studio 2017 prenne en charge le type de projet, comme indiqué dans Ciblage et compatibilité de la plateforme.)(Subject, again, to whether Visual Studio 2017 supports the project type at all, as described on Platform Targeting and Compatibility.)

Dans ce contexte, la question se pose naturellement de savoir si vous devez essayer de mettre à jour manuellement ou de faire migrer un projet vers une valeur de ToolsVersion plus récente.In this context, the question naturally arises whether you should try to manually update or migrate a project to a newer ToolsVersion value. Ce type de changement est inutile. Il va générer probablement beaucoup d’erreurs et d’avertissements que vous devrez traiter pour que le projet puisse être regénéré.Making such a change is unnecessary, and would likely generate many errors and warnings that you'd need to fix to get the project to build again. De plus, si Visual Studio cesse un jour de prendre en charge un ToolsVersion spécifique, l’ouverture du projet va déclencher le processus de migration de ce dernier, car la valeur de ToolsVersion devra être changée.Furthermore, if Visual Studio drops support for a specific ToolsVersion in the future, then opening the project will trigger the project migration process specifically because the ToolsVersion value must be changed. Dans ce cas, le sous-système de ce type de projet sait exactement ce qui doit être changé. Il peut donc effectuer les changements nécessaires automatiquement, comme indiqué plus haut dans cet article.In such a case, the subsystem for that specific project type knows exactly what needs to be changed, and can make those changes automatically as described earlier in this article.

Pour plus d’informations, consultez les articles suivants :Refer to the following articles for further discussion: