web-dev-qa-db-fra.com

Bizarre: nom de type C # ou d'espace de nom introuvable - Constructions réussies

J'ai une erreur étrange dans mon projet lorsqu'il est ouvert dans l'IDE VS2012. Partout où je me sers d'un autre projet référencé, le code "Type or Namespace name could not be found" apparaît soudainement. Et par "dit", je veux dire que le texte est souligné en rouge avec l’erreur lorsque je la survole. Le intellisense ne fonctionne pas pour ce code. MAIS (et voici la partie bizarre), les erreurs n'apparaissent pas dans la console d'erreur et le projet se construit et fonctionne correctement.

Je peux même déboguer et parcourir le code et cela fonctionne parfaitement. Ainsi, au moment de l'exécution, le projet est correctement référencé, mais lors de la conception, IDE ne le trouve pas. Cela a fonctionné pendant les 2 dernières semaines, et alors seulement soudain est allé un peu dingue. C'est vraiment énervant parce que je suis nul en codage sans intellisense!

Est-ce que quelqu'un a déjà vu quelque chose comme ça ou fait des suggestions?

28
hofnarwillie

J'ai trouvé qu'il s'agit d'un problème connu avec VS2012. Vérifiez pour voir comment vous construisez, 64 bits ou 32 bits. Cela ne fonctionnera pas avec 64 bits, mais avec 32 bits. Cela indiquera des éléments manquants et la conception ne fonctionnera pas, mais le programme fonctionnera correctement. J'ai entendu dire que la nouvelle mise à jour de VS qui n'a pas encore été publiée le corrigera.

11
Lainezor

J'ai eu ça. J'ai référencé les assemblys dont le "Target Framework" était défini sur ".NET Framework 4" dans la section "Application" des propriétés du projet. J'ai changé cela en ".Net Framework 4.5" non seulement dans le projet de l'Assemblée référencé, mais également dans le projet que je construisais et cela a fonctionné. Essayez ceci.

13
txavier

Supprimez manuellement toutes les références aux bibliothèques des autres projets et rajoutez-les. Intellisense reconstruit tout ce dont il a besoin à ce moment-là et cela m'a aidé par le passé.

5
Yevgen Fesenko

En lien avec quelques autres réponses ici, j'avais un projet "Data" utilisant un espace de noms "Data". Bien construit, mais vient tout juste de commencer à montrer des erreurs d’intelliSense (même s’il a continué à bien construire.) (VS 2015.)

J'ai résolu ce problème en changeant mon projet "Données" et mon espace de noms en "MyCompany.Data".  

Bizarrement, le problème ne semblait pas se manifester jusqu'à récemment, mais le changement a été résolu. Vraisemblablement, il y avait un conflit dans l'espace de noms avec un autre projet ou une autre référence, ce qui peut bien se construire, mais intellisense ne peut pas le gérer.

Vous pouvez modifier cela dans l'onglet Application des propriétés du projet . Vous pouvez également ouvrir un diagramme EDMX , cliquer avec le bouton droit de la souris, choisir le navigateur de modèle, choisir le deuxième élément réductible dans l'onglet du navigateur de modèle, cliquer sur les propriétés, puis vous trouverez l'option Espace de noms pour l'entité générée Entités-cadres et contextes. (De la même manière, si vous modifiez l'espace de nom d'un modèle Entity Framework, vous devrez peut-être également modifier la connexion associée afin qu'elle corresponde à [dans Web.Config pour ASP.Net et MVC.])

3
Greg

Une autre source de ce problème est une solution avec plusieurs projets contenant du code pour le même espace de noms. Le compilateur peut gérer cela. Intellisense ne le sera pas.

1
Dirk Brockhaus

Examinez vos fichiers .proj dans un éditeur de texte et assurez-vous que les chemins d'accès à vos références sont corrects.

1
classicskids

assurez-vous de ne pas référencer les projets .net Framework 4.5 dans les projets .net 4!

1
Maor Hayoun

Assurez-vous qu'il n'y a pas de class portant le même nom que Project default namespace.

1
PaRiMaL RaJ

J'ai eu le même problème, où il se construirait et fonctionnerait bien, il montrerait toujours cette erreur et je ne pouvais pas utiliser intellisense avec la classe.

En fait, j'ai utilisé la méthode automatique de création de la classe dans un nouveau fichier pour résoudre le problème, puis j'ai simplement copié le code de la classe réelle. J'ai supprimé l'ancien fichier, renommé le nouveau fichier et maintenant cela fonctionne.

0
EatATaco

Cela peut également arriver si vous définissez l'action Build Action sur "Aucune" sur le fichier référencé et que vous l'oubliez.

0
drifter