Comment corriger une erreur « type or namespace name could not be found » dans Visual Studio ?

Comment corriger une erreur « type or namespace name could not be found » dans Visual Studio ?

Cela peut être le résultat d’une incompatibilité de version du .NET Framework entre deux projets.

Cela peut se produire de deux manières :

  • un projet en profil client référençant un projet en framework complet ; ou

  • une version de framework plus ancienne ciblant une version de framework plus récente

Par exemple, cela se produira lorsqu’une application est configurée pour cibler le framework .NET 4 Client Profile, et que le projet qu’elle référence cible le framework .NET 4 complet.

Pour être plus clair :

  • Le Projet A cible le framework Client Profile

  • Le Projet A référence le Projet B

  • Le Projet B cible le framework complet

La solution dans ce cas est soit de mettre à niveau le framework cible de l’application (Projet A), soit de rétrograder la cible de l’assembly référencée (Projet B). Il est possible pour une application en framework complet de référencer/consommer un assembly en framework Client Profile, mais pas l’inverse (un profil client ne peut pas référencer un assembly ciblant le framework complet).

Notez que vous pouvez également obtenir cette erreur lorsque vous créez un nouveau projet dans VS2012 ou VS2013 (qui utilise .NET 4.5 comme framework par défaut) et :

les projets de référence utilisent .NET 4.0 (c’est courant lorsque vous avez migré de VS2010 vers VS2012 ou VS2013 puis que vous ajoutez un nouveau projet)

les projets référencés utilisent une version supérieure, c’est-à-dire 4.5.1 ou 4.5.3 (vous avez reciblé vos projets existants vers la dernière version, mais VS crée toujours de nouveaux projets ciblant la v4.5, et vous référencez ensuite ces anciens projets depuis le nouveau projet)