Vue d’ensemble du ciblage des frameworks
Dans Visual Studio, vous pouvez spécifier la version de .NET que vous souhaitez cibler pour votre projet. Le ciblage de l’infrastructure permet de garantir que l’application utilise uniquement les fonctionnalités disponibles dans la version de l’infrastructure spécifiée. Pour que les applications .NET Framework s’exécutent sur un autre ordinateur, la version de l’infrastructure cible doit être compatible avec la version du framework installée sur l’ordinateur.
Une solution Visual Studio peut contenir des projets qui ciblent différentes versions de .NET. Toutefois, notez que vous ne pouvez compiler qu’avec une seule version de .NET en utilisant des conditions de compilation conditionnelles pour une seule compilation ou générer des fichiers binaires différents pour chaque framework cible différent. Pour plus d’informations sur les frameworks cibles, consultez Frameworks cibles.
Conseil
Vous pouvez également cibler des applications pour différentes plateformes. Pour plus d’informations, consultez l’article Multiciblage de MSBuild.
Fonctionnalités de ciblage du framework
Le ciblage du cadre comprend les fonctionnalités suivantes :
Lorsque vous ouvrez un projet qui cible une version antérieure de l’infrastructure, Visual Studio peut mettre à niveau automatiquement le projet ou quitter le as-iscible.
Lorsque vous créez un projet .NET Framework, vous pouvez spécifier la version du .NET Framework que vous souhaitez cibler.
Vous pouvez cibler plusieurs frameworks dans un seul projet.
Vous pouvez cibler une version différente de .NET dans chacun des projets de la même solution.
Vous pouvez modifier la version de .NET cible d’un projet existant.
Lorsque vous modifiez la version de .NET cible par un projet, Visual Studio apporte toutes les modifications requises aux références et aux fichiers de configuration.
Lorsque vous travaillez sur un projet qui cible une version antérieure de l’infrastructure, Visual Studio modifie dynamiquement l’environnement de développement, comme suit :
Il filtre les éléments dans la boîte de dialogue Ajouter un nouvel élément, la boîte de dialogue Ajouter une nouvelle référence et la boîte de dialogue Ajouter une référence de service pour omettre les choix qui ne sont pas disponibles dans la version ciblée.
Il filtre les contrôles personnalisés dans la boîte à outils pour supprimer ceux qui ne sont pas disponibles dans la version ciblée et pour afficher uniquement les contrôles les plus up-to-date lorsque plusieurs contrôles sont disponibles.
Il filtre IntelliSense pour omettre les fonctionnalités de langage qui ne sont pas disponibles dans la version ciblée.
Il filtre les propriétés dans la fenêtre propriétés pour omettre celles qui ne sont pas disponibles dans la version ciblée.
Il filtre les options de menu pour omettre les options qui ne sont pas disponibles dans la version ciblée.
Pour les builds, elle utilise la version du compilateur et les options du compilateur appropriées pour la version ciblée.
Remarque
- Le ciblage de l’infrastructure ne garantit pas que votre application s’exécutera correctement. Vous devez tester votre application pour vous assurer qu’elle s’exécute sur la version ciblée.
- Vous ne pouvez pas cibler les versions du framework sous .NET Framework 2.0.
Modifier l’infrastructure cible
Dans un projet Visual Basic, C# ou F#existant, vous modifiez la version cible de .NET dans la boîte de dialogue propriétés du projet. Pour plus d’informations sur la modification de la version cible pour les projets C++, consultez Comment modifier le framework cible et l’ensemble d’outils de plateforme à la place.
Dans l’Explorateur de solutions, ouvrez le menu contextuel du projet que vous souhaitez modifier avec un clic droit, puis choisissez Propriétés.
Dans la colonne de gauche de la fenêtre Propriétés, choisissez l’onglet Application.
Remarque
Après avoir créé une application UWP, vous ne pouvez pas modifier la version ciblée de Windows ou .NET.
Dans la liste Framework cible, choisissez la version souhaitée.
Dans la boîte de dialogue de vérification qui s’affiche, choisissez le bouton Oui.
Le projet est alors déchargé. Quand il recharge, il cible la version .NET que vous venez de choisir.
Dans l’Explorateur de solutions, ouvrez le menu contextuel du projet que vous souhaitez modifier avec un clic droit, puis choisissez Propriétés.
Dans la colonne de gauche de la fenêtre Propriétés, choisissez l’onglet Application.
Remarque
Après avoir créé une application UWP, vous ne pouvez pas modifier la version ciblée de Windows ou .NET.
Dans la liste Framework cible, choisissez la version souhaitée.
Pour un projet .NET Framework, la boîte de dialogue que vous voyez peut ressembler à la capture d’écran suivante :
Pour un projet .NET , la boîte de dialogue peut ressembler à la capture d’écran suivante :
Si une boîte de dialogue de vérification s’affiche, sélectionnez le bouton Oui.
Le projet est alors déchargé. Quand il recharge, il cible la version .NET que vous venez de choisir.
Cibler plusieurs frameworks
Avec .NET 5 et versions ultérieures, vous pouvez générer un projet pour plusieurs frameworks dans une seule build en modifiant manuellement le fichier projet. Ouvrez le fichier projet et remplacez la propriété TargetFramework
par TargetFrameworks
, puis spécifiez votre liste de monikers du framework cible (TFMs), séparées par des points-virgules, comme dans le code suivant :
<TargetFrameworks>net7.0;net8.0</TargetFrameworks>
Consultez la liste des TFMs sur Frameworks cibles dans les projets de style SDK.
Vous devez recharger le projet après avoir apporté cette modification. Après cela, si vous ouvrez la fenêtre Propriétés, sous l’onglet Application, vous pouvez modifier la liste des frameworks cibles.
Remarque
Si votre code contient des références à une version différente de .NET que celle que vous avez ciblée, les messages d’erreur peuvent apparaître lorsque vous compilez ou exécutez le code. Pour résoudre ces erreurs, modifiez les références. Consultez Résoudre les problèmes liés aux erreurs de ciblage de .NET.
Conseil
Selon l’infrastructure cible, elle peut être représentée de la manière suivante dans le fichier projet :
- Pour une application .NET Core :
<TargetFramework>netcoreapp2.1</TargetFramework>
- Pour une application .NET Standard :
<TargetFramework>netstandard2.0</TargetFramework>
- Pour une application .NET Framework :
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
Sélectionner une version de framework cible
Lorsque vous créez un projet .NET Framework, vous pouvez sélectionner la version cible du .NET Framework après avoir sélectionné un modèle de projet. La liste des frameworks disponibles inclut les versions d’infrastructure installées applicables au type de modèle sélectionné. Pour les modèles de projet non-.NET Framework, par exemple les modèles .NET Core, la liste déroulante Framework n’apparaît pas.
Si vous choisissez de créer un projet .NET Framework, une interface similaire à la capture d’écran suivante s’affiche :
Si vous choisissez de créer un projet .NET, vous verrez l’interface utilisateur (IU) similaire aux deux captures d’écran suivantes.
Le premier écran que vous verrez est la boîte de dialogue Configurer votre nouveau projet.
Le deuxième écran que vous verrez est la boîte de dialogue Options supplémentaires.
Résoudre des références d’assembly système et utilisateur
Pour cibler une version .NET, vous devez d’abord installer les références d’assembly appropriées. Vous pouvez télécharger des packs de développement pour les différentes versions de .NET sur la page de téléchargements .NET .
Pour les projets .NET Framework, la boîte de dialogue Ajouter une référence désactive les assemblys système qui ne se rapportent pas à la version cible du .NET Framework afin qu’ils ne puissent pas être ajoutés par inadvertance à un projet. (Les assemblys système sont .dll fichiers inclus dans une version de .NET Framework.) Les références appartenant à une version de framework supérieure à la version ciblée ne seront pas résolues, et les contrôles qui dépendent d’une telle référence ne peuvent pas être ajoutés. Si vous souhaitez activer une telle référence, réinitialisez la cible .NET Framework du projet sur celle qui inclut la référence.
Pour plus d’informations sur les références d’assembly, consultez Résoudre les assemblys au moment du design.
Activer LINQ
Lorsque vous ciblez .NET Framework 3.5 ou une version ultérieure, une référence à System.Core et une importation au niveau du projet pour System.Linq (en Visual Basic uniquement) sont ajoutées automatiquement. Si vous souhaitez utiliser des fonctionnalités LINQ, vous devez également activer Option Infer
(en Visual Basic uniquement). La référence et l’importation sont supprimées automatiquement si vous remplacez la cible par une version antérieure du .NET Framework. Pour plus d’informations, consultez Travail avec LINQ.