espace de noms non trouvé!
J'ai créé une solution appelée Foo
.
Ajout d'une bibliothèque de classe appelé Foo.Common
Ajout d'une application console pour appeler le code de la bibliothèque de appelé ConsoleApp
.
Que j'ai référencé le Foo.Common
de ConsoleApp
et tapé :
using Foo.Common;
public class Program
{
CommonClass c = new CommonClass();
static void Main(string[] args)
{
}
}
et obtenir ce retour :
Error 1 The type or namespace name '**Foo**' could not be found (are you missing a using directive or an assembly reference?) Z:\Foo\Solution1\ConsoleApplication1\Program.cs 3 11 ConsoleApplication1
Pourquoi suis-je cela?
ce qui s passe?
- Est CommonClass déclaré que
public
? Si non, vous ne pouvez pas l'utiliser en dehors du Foo.Commune de la bibliothèque de classe. - Êtes-vous à l'aide de Visual Studio? Si oui, le Navigateur d'Objet (menu Affichage) va vous montrer le chargé des espaces de noms.
- oui public.....
- Il s montrant Foo.Commun. Mais le compilateur est à la recherche pour les Foo espace de noms. WTF?
- Déplacer l'instruction à l'aide de la déclaration d'espace de noms?
- Si vous avez un
using Foo.Bar.Baz;
la directive et le compilateur ne trouve pasFoo.Bar.Baz
, il semble pourFoo.Bar
. Et si il ne le trouve pas, il chercheFoo
. Si il ne le trouve pas aussi bien, il est dit queFoo
n'a pas pu être trouvé, même si à l'origine elle était à la recherche pourFoo.Bar.Baz
.
Vous devez vous connecter pour publier un commentaire.
Assurez-vous que
La ConsoleApp projet a une référence à la Foo.Commune projet (ne pas parcourir pour Foo.Common.dll),
le fichier contient un
using
directive pour l'espace de noms dans lequelCommonClass
est déclarée, etCommonClass
est déclarée commepublic
.Vos fichiers devrait ressembler à ceci:
CommonClass.cs dans Foo.Commune projet:
Programme.cs dans ConsoleApp projet:
De s'assurer que, selon les paramètres de votre projet, le framework cible est défini comme .NET Framework 4 et pas .NET Framework 4 Client Profile. J'ai eu ce même comportement quand il a été de définir le Profil de la clientèle et il a été correctifs dès que j'ai mis à la régulière .NET Framework 4.
Clic droit sur la nouvelle console application de la solution/projet et Ajouter une Référence et ajouter le projet qui contient les Foo espace de noms
Avez-vous d'ajouter une référence à la bibliothèque? Consultez la section "Références" dans le projet de console. Si elle n'est pas là, vous devez l'ajouter.
J'ai posté un commentaire, mais je veux m'étendre sur le sujet ici. Ce qui est probablement ce qui se passe est qu'il voit en utilisant comme un état et non un mot-clé. Il semble que vous avez quelque chose comme ce qui suit:
Essayer
À la place.
using
directive à l'intérieur d'une déclaration d'espace de noms. Il n'y a pas d'ambiguïté avec unusing
déclaration.using
à l'intérieur de l'espace de noms et un à l'extérieur n'est sûrement pas le bon style!Il ressemble Foo Bar eu cette erreur parce que sa cible du projet a été fixé au profil du client.
Juste pensé que je voudrais ajouter encore une "solution" -- j'ai créé une bibliothèque qui a ciblé les 4,5 cadre. Mon ancien projet a été tarting le 4 cadre. J'ai eu cette erreur.
Modification de l'ancien projet à 4,5 fait le travail.