Partager via


Dépannage des erreurs de ciblage du .NET Framework

Visual Studio vous permet de distribuer un runtime .NET Framework léger, .NET Framework 4 Client Profile, qui se compose uniquement du sous-ensemble de fichiers binaires contenus dans .NET Framework 4. .NET Framework 4 Client Profile vous permet de distribuer une bibliothèque .NET Framework plus légère aux utilisateurs de votre application, afin qu'ils puissent exécuter cette dernière, même si la version complète de .NET Framework 4 n'est pas installée sur leur système.

Lorsque votre application cible un profil particulier, vous pouvez rencontrer des erreurs si vous tentez de référencer un assembly qui ne fait pas partie de ce profil. Les erreurs courantes sont les suivantes :

  • Le nom du type ou de l'espace de noms « nom » n'existe pas dans l'espace de noms « espace de noms » (une référence d'assembly est-elle manquante ?).

  • Le type « NomType » n'est pas défini.

  • Impossible de résoudre l'assembly « assembly ». L'assembly n'est pas répertorié dans le cadre du profil « profil ».

Ces erreurs peuvent résulter de différentes actions. Cette rubrique décrit les causes possibles de l'erreur et indique comment résoudre le problème.

Pour plus d'informations sur le .NET Framework 4 Client Profile, consultez .NET Framework Client Profile et Comment : cibler une version ou un profil spécifique du .NET Framework.

Vous avez référencé un assembly qui ne fait pas partie du profil client.

Si votre application tente de référencer des fonctionnalités contenues dans un assembly ou un assembly dépendant non inclus dans .NET Framework 4 Client Profile, des messages d'erreur d'exécution risquent de s'afficher. Le message exact dépend de l'emplacement de la fonctionnalité référencée. Pour éviter de telles erreurs, vous pouvez supprimer la référence incorrecte à l'assembly depuis le projet ou faire en sorte que votre projet cible la version complète de .NET Framework version 4, plutôt que la bibliothèque du sous-ensemble .NET Framework 4 Client Profile.

Vous avez référencé un projet ou un assembly qui cible une version différente du .NET Framework.

Vous pouvez créer des applications qui référencent des projets ou des assemblys qui ciblent différentes versions du .NET Framework. Par exemple, si vous créez une application qui cible le .NET Framework 4 Client Profile, ce projet peut référencer un assembly qui cible le .NET Framework version 2.0. Toutefois, si vous créez un projet qui cible une version antérieure du .NET Framework, vous ne pouvez pas définir de référence à un projet ou à un assembly qui cible le .NET Framework 4 Client Profile ou le .NET Framework 4 dans ce projet. Pour corriger l'erreur, vérifiez que le profil ciblé par votre application est compatible avec le profil ciblé par les projets ou les assemblys référencés par votre application.

Vous avez reciblé un projet sur une autre version du .NET Framework.

Lorsque vous modifiez la version cible du .NET Framework de votre application, Visual Studio modifie certaines des références. Toutefois, vous devez également procéder à des mises à jour manuelles. Par exemple, si vous créez une application dont les ressources ou les paramètres reposent sur le .NET Framework 4 Client Profile et que vous modifiez ensuite l'application pour cibler .NET Framework 3.5 SP1, l'une des erreurs susmentionnées risquent alors de s'afficher.

Voici une solution pour les paramètres d'application : dans l'Explorateur de solutions, cliquez sur Afficher tous les fichiers, puis modifiez le fichier app.config dans l'Éditeur XML de Visual Studio. Modifiez la version dans les paramètres pour correspondre à celle du .NET Framework. Par exemple, vous pouvez remplacer le paramètre de version 4.0.0.0 par 2.0.0.0. De la même manière, pour une application qui dispose de ressources ajoutées, dans l'Explorateur de solutions, cliquez sur Afficher tous les fichiers, développez My Project (Visual Basic) ou Propriétés (C#), puis modifiez le fichier Resources.resx dans l'Éditeur XML de Visual Studio. Remplacez le paramètre de version 4.0.0.0 par 2.0.0.0.

Si votre application dispose de ressources telles que des icônes ou des bitmaps, ou encore de paramètres tels que les chaînes de connexion de données, vous pouvez également résoudre le problème en supprimant tous les éléments de la page Paramètres du Concepteur de projets, puis en rajoutant les paramètres requis. Pour plus d'informations, consultez Paramètres, page du Concepteur de projets.

Vous avez reciblé un projet vers une autre version de .NET Framework et les références ne sont pas résolues

Dans certains cas, lorsque vous reciblez le projet vers une autre version de .NET Framework, vos références peuvent ne pas être correctement résolues. L'une des causes courantes de ce problème sont les références explicites complètes à des assemblys. Vous pouvez résoudre ce problème en supprimant les références qui ne peuvent pas être résolues, puis en les ajoutant de nouveau au projet. Vous pouvez également modifier le fichier projet en supprimant les références de ce type :

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

et en les remplaçant par des références de ce type :

<Reference Include="System.ServiceModel" />

Notes

Après avoir fermé et rouvert un projet, vous devez également le régénérer pour vérifier que toutes les références sont correctement résolues.

Voir aussi

Tâches

Comment : cibler une version ou un profil spécifique du .NET Framework

Concepts

.NET Framework Client Profile

Autres ressources

Détermination d'une version ou d'un profil spécifique du .NET Framework