Résoudre les erreurs de ciblage du .NET Framework

              S’applique à : Visual Studio

Cette rubrique décrit les erreurs MSBuild qui peuvent se produire en raison de problèmes de référence et explique comment résoudre ces erreurs.

Référencer un projet ou un assembly qui cible une version différente de .NET

Vous pouvez créer des applications qui référencent des projets ou des assemblys qui ciblent différentes versions de .NET. Par exemple, vous pouvez créer une application qui cible .NET 6, mais qui fait référence à un assembly qui cible .NET Core 3.1. Toutefois, vous ne pouvez pas définir une référence dans un projet qui cible une version antérieure de .NET sur un projet ou un assembly qui cible .NET 6. Voici un exemple de l’erreur que vous pouvez voir dans ce cas :

error NU1201: Project ClassLibrary-NET6 is not compatible with netcoreapp3.1 (.NETCoreApp,Version=v3.1). Project ClassLibrary-NET6 supports: net6.0 (.NETCoreApp,Version=v6.0)
2>Done building project "ClassLibrary-NET31.csproj" -- FAILED.

Pour résoudre l’erreur, assurez-vous que votre application cible une version .NET compatible avec la version ciblée par les projets ou assemblys référencés par votre application.

Re-cibler un projet vers une autre version de .NET

Si vous modifiez la version cible de .NET pour votre application, Visual Studio modifie certaines références, mais vous devrez peut-être mettre à jour certaines références manuellement. Par exemple, l’une des erreurs mentionnées précédemment peut se produire si vous modifiez une application pour cibler .NET Core 3.1 et que cette application a des références, des ressources ou des paramètres qui s’appuient sur .NET 6.

Capture d’écran montrant la modification de l’infrastructure cible dans Visual Studio.

Mettre à jour les références dans app.config

Pour contourner les paramètres d’application dans les applications .NET Framework, procédez comme suit :

  1. Ouvrez l’Explorateur de solutions.
  2. Sélectionnez Afficher tous les fichiers, puis modifiez le fichier app.config dans l’éditeur XML de Visual Studio.
  3. Modifiez la version dans les paramètres pour qu’elle corresponde à la version appropriée de .NET. Par exemple, vous pouvez modifier le paramètre de version de 4.0.0.0 à 2.0.0.0.

De même, pour une application qui a ajouté des ressources, procédez comme suit :

  1. Ouvrez l’Explorateur de solutions.
  2. Sélectionnez Afficher tous les fichiers.
  3. Développez Mon projet (Visual Basic) ou Propriétés (C#), puis modifiez le fichier Resources.resx dans l’éditeur XML de Visual Studio.
  4. Modifiez le paramètre de version de 4.0.0.0 à 2.0.0.0.

Mettre à jour les ressources

Si votre application dispose de ressources telles que des icônes ou des bitmaps ou des paramètres tels que des chaînes de connexion de données, vous pouvez également résoudre l’erreur en supprimant tous les éléments de la page Paramètres du Designer Project, puis en lisant les paramètres requis.

Vous re-ciblez un projet vers une autre version de .NET et les références ne sont pas résolues

Si vous re-ciblez un projet vers une autre version de .NET, vos références risquent de ne pas être résolues correctement dans certains cas. Les références complètes explicites aux assemblys sont souvent à l’origine de ce problème, mais vous pouvez le résoudre en supprimant les références qui ne sont pas résolues, puis en les rajoutant au projet. Vous pouvez également modifier le fichier projet pour remplacer les références. Tout d’abord, supprimez les références de la forme suivante :

<Reference Include="System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" />

Ensuite, remplacez-les par le formulaire simple :

<Reference Include="System.ServiceModel" />

Remarque

Après avoir fermé et rouvert votre projet, vous devez également le reconstruire pour vous assurer que toutes les références sont correctement résolues.

References