web-dev-qa-db-fra.com

La balise "xxx" n'existe pas dans l'espace de noms XML "yyy"/La référence est introuvable.

J'ai un winform usercontrol que je veux ajouter au projet wpf.

J'ai ajouté les références pertinentes (WindowsFormsIntegration, SystemWindowsForms et ma dll de contrôle utilisateur) et ajouté cette ligne dans mon XAML:

xmlns:MyControl="clr-namespace:xx.xx.xx;Assembly=xx.xx"

Et puis ceci:

<WindowsFormsHost><MyControl:control></MyControl:control></WindowsFormsHost>

Lorsque j'écris "MyControl:" le "contrôle" est automatisé, ce qui signifie que VS reconnaît le contrôle et que toutes les références ajoutées sont correctes ... mais lorsque je compile le projet, cela me donne l'erreur dans le titre.

Modifier

C'est très étrange quand je compile le projet all que j'ai l'erreur "Le nom de type ou d'espace de nom" xx 'n'a pas pu être trouvé ... " Mais j'ai ajouté toutes les références et le VS reconnaît l'espace de nom alors pourquoi le compilateur ne les a pas trouvés? Si ce problème est résolu, je pense que l'autre problème disparaîtra également.

24
Maya

La solution est la suivante: Accédez aux propriétés de votre projet et remplacez le Target Framework de Client Profile par la version complète du .Net que vous utilisez, voir l'image ci-dessous. Ce problème se produit si votre DLL cible l'ensemble du .NET Framework et si votre application WPF (projet principal) cible le profil client .Net.

Change Your Target Framework to the Full Version

42
Mohammed A. Fadil

Cela m'est arrivé lorsque j'ai inclus le nom de l'assembly dans la définition de l'espace de noms, mais que les deux contrôles étaient dans la même assemblée. Le simple fait de supprimer la partie Assembly de la déclaration d’espace de noms l’a résolu.

21
Foole

Visual Studio chargera la référence uniquement pour la réflexion afin d'afficher correctement l'intellisense correct. Mais pour compiler, le compilateur aura besoin de toutes les dll dont dépend votre dll référencée. Donc Visual Studio affichera intellisense pour mycontrol, car il peut le trouver en référence. Mais votre myontrol peut faire référence à d'autres DLL que vous n'avez peut-être pas ajoutées. Vous devrez également ajouter des références dépendantes de mycontrol dans votre projet. 

14
Akash Kava

Il se peut également que le cadre cible diffère entre vos projets. Nous hébergeons une bibliothèque de classes dll avec les pages WPF, et elle était ciblée sur "Tout processeur", mais l'application hôte était ciblée sur "x86". Une fois qu'ils ont apparié, le problème est parti.

5
thailandmatt

J'ai rencontré le même "Le type ou le nom de l'espace de nommage 'xx' est introuvable ..." issue.

Il disparaît lorsque j'ai déplacé mes fichiers Visual Studio sur un lecteur local . Ils étaient auparavant stockés sur un répertoire réseau partagé. Je ne connais pas la cause fondamentale de cela, mais au moins, je peux faire exécuter mon concepteur maintenant.

1
Larry

J'ai déjà rencontré ce problème auparavant et en remplaçant <MyControl:control></MyControl:control> par <MyControl:control/>, je l'ai corrigé.

Aucune idée pourquoi cependant. Il semble que le premier formulaire concerne uniquement les contrôles pouvant contenir d'autres contrôles.

0
Tom Savage