Le nom "XYZ" n'existe pas dans le namespace " clr-namespace: ABC"

je travaillais sur la création de quelques extensions de markup et j'ai commencé à avoir des comportements de VS très bizarres. J'ai extrait et mis en évidence la question de la solution distincte. Le problème est que VS ne peut pas créer un objet CLR dans XAML.

le voici:

:

<Window x:Class="WpfApplication4.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:wpfApplication4="clr-namespace:WpfApplication4">
    <Window.Resources>
        <wpfApplication4:Dog x:Key="doggy" />
    </Window.Resources>
    <Grid />
</Window>

Code derrière:

using System.Windows;

namespace WpfApplication4
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
    }
}

classe de chien:

namespace WpfApplication4
{
    public class Dog
    {

    }
}

App.Xaml (pas de code dans App.XAML.cs):

<Application x:Class="WpfApplication4.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="MainWindow.xaml">
    <Application.Resources>

    </Application.Resources>
</Application>

Project settings

l'Exception", j'obtiens:

Error   1   The name "Dog" does not exist in the namespace "clr-namespace:WpfApplication4". hopr1folders$vxkDocumentsVisual Studio 2012ProjectsWpfApplication4MainWindow.xaml  6   9   WpfApplication4

je suis capable d'exécuter solution, mais le concepteur échoue avec une erreur de "Markup invalide" Des idées?

Modifier

j'exécute VS mise à jour 2012 2 La même solution fonctionne en VS mise à jour 2012 1

65
demandé sur Vitalij 2013-04-25 17:54:22

21 réponses

votre solution fonctionne sur un réseau partagé. Les applications .Net (et Visual Studio) peuvent rencontrer des problèmes de permission / accès lorsqu'elles fonctionnent sur un réseau partagé.

Copiez votre solution sur un disque local (en toute confiance) et vous devriez être très bien.

il est possible d'obtenir un lecteur réseau travaillant avec pleine confiance - vous pouvez trouver des réponses à ce sujet sur StackOverflow et d'autres endroits - mais dans mon expérience je continue à courir dans les obstacles quand je fais ceci, alors essayez de l'éviter à moins que ce soit absolument critique pour le problème en question.

E. G. cette question donne des instructions sur la façon de procéder:

Give full trust to UNC share for Visual Studio 2012 and .Net 4.0

Je n'ai jamais essayé cela qu'avec VS2010 donc (comme indiqué dans le lien) vous pourriez avoir une meilleure joie avec 2012.

47
répondu GrahamMc 2017-05-23 11:47:28

pour quiconque vient de traverser ceci maintenant, avant que vous ne fassiez quoi que ce soit d'autre... si vous êtes certain que vos classes/namespaces sont corrects et que la reconstruction n'a pas résolu votre problème:

Essayez de redémarrer Visual Studio

C'est ça!

il s'agit apparemment d'un bug de Visual Studio 2012 (qui affecte aussi toutes les autres versions supportant le développement XAML) ""


mise à jour: en cas de redémarrage Visual Studio ne fonctionne pas, redémarrez tout le PC.

mise à jour: comme mentionné dans les commentaires de @Dunk, si redémarrer Visual Studio ne fonctionne pas, essayez de supprimer le .suo fichier

107
répondu Jordan 2017-06-12 11:05:18

j'ai vécu le même problème, mais mes fichiers sont stockés localement. Mon IValueConverter réside dans un assemblage différent de la vue qui l'utilise. Même si VS2013 IntelliSense a suggéré ce qui suit, cela n'a pas fonctionné:

xmlns:conv="clr-namespace:MySharedAssembly.Converters"

après que j'ai explicitement ajouté l'assemblage à la fin, il a fonctionné:

xmlns:conv="clr-namespace:MySharedAssembly.Converters;assembly=MySharedAssembly"
30
répondu Wouter 2014-07-22 18:35:18

je suis resté sur cette erreur pendant des heures. Les assemblages et les espaces de noms étaient corrects, les Classes et les références étaient correctes aussi. Compilez et lancez ok, seul le concepteur avait des problèmes avec moi. La seule chose qui a fonctionné

  1. à des fins de conception swtich de x64 x86
  2. pour exécuter et déboguer revenir à x64

j'utilise le portable 3d party.bibliothèque que j'avais seulement en version x64.

11
répondu Stefan Michev 2015-04-09 16:58:35

a téléchargé DLL solution

  1. Débloquer le .fichier dll
    • faites un clic droit et sélectionnez Propriétés
    • le débloquer dans l'onglet" Général "(voir image)
  2. assure VS revalide le XAML (peut-être en le redémarrant)

enter image description here

9
répondu consideRatio 2015-12-13 13:09:53

il se passe encore dans VS 2015. J'ai pris le SomeConverter dans l'Application.xaml:

<Application.Resources>
    <!--Value Converters-->
    <local:SomeConverter x:Key="mySomeConverter"/>

Ctrl-Maj-B

Remettre dans - et cela a fonctionné.

6
répondu Andi Truman 2015-11-25 12:58:45

créez un lien symbolique vers le partage de réseau sur votre disque local.

passez à commandline et tapez mklink /D C:\LOCALFOLDER \ YOURNETWORKPATH

ouvrez ensuite les projets de votre dossier local et tous les problèmes disparaissent. Maintenant, tous les fichiers seront toujours sur votre partage réseau.:)

3
répondu Tom 2014-07-09 10:22:43

je commençais un nouveau projet et d'avoir ce problème. Aucune des solutions énumérées ici n'a fonctionné pour moi, y compris la suppression du fichier suo, le déchargement/rechargement du projet, le redémarrage de VS, etc.

ce qui a fonctionné pour moi était, parce que c'était un nouveau projet, Je ne l'avais pas encore construit. J'ai enlevé la Fenêtre.DataContext element au presse-papiers, construit le projet une fois (shift-ctrl-b), puis ajouté l'élément et il a fonctionné immédiatement.

2
répondu Jim Yarbro 2015-05-29 08:33:23

avant d'essayer une solution étendue, essayez ce qui suit:

j'ai eu exactement le même problème, j'ai fermé la fenêtre/forme qui était à l'origine de l'erreur et j'ai ensuite lancé le projet,

L'erreur semble clair une fois que le projet a exécuté avec succès et n'est pas rentré.

espérons que cela aidera quiconque recherche une solution rapide.

2
répondu Connor Mcgrann 2016-09-06 10:03:27

j'ai eu la même erreur dans Visual Studio 2015 et j'ai réussi à faire travailler le concepteur en décochant le bouton"Désactiver le code du projet".

Screenshot to Designer Button

2
répondu ChristianMurschall 2017-03-13 15:22:19

cela m'agace depuis des années 2008, 10, 12, 13.

chaque fois que cela se produit (et oui, je travaille sur un partage de réseau - Je ne peux pas l'éviter), je ferme VS, renommer le dossier et rouvrir le projet. 9 fois sur 10, cela fonctionne. Pendant un certain temps.

0
répondu Muckers Mate 2014-06-09 15:17:18

pour toute autre personne coincée.

ce qui a fonctionné pour moi était de changer l'alias de l'Espace-nom de local , à n'importe quoi d'autre.

xmlns:local="clr-namespace:ExampleNameSpace.Folder" />

<Grid>
    <StackPanel>
        <local:ReferencedUserControl />
    </StackPanel>
</Grid>

à

xmlns:blah="clr-namespace:ExampleNameSpace.Folder" />

<Grid>
    <StackPanel>
        <blah:ReferencedUserControl />
    </StackPanel>
</Grid>

Espérons que cette aide!

0
répondu Tyler Durden 2015-12-07 11:16:40

Avait le même problème. Ce qui l'a fixé pour moi était quand j'ai réalisé que la classe en question a été marquée comme internal :

internal class MyClass
{
}

après l'avoir changé en public , le concepteur a pu compiler le XAML correctement.

0
répondu James Ko 2016-01-29 23:44:24

ce qui a fonctionné pour moi est de changer le MOVE en XCOPY Post Build project properties et puis re-build le projet. Le concepteur peut vouloir la dll dans le dossier de sortie du projet. j'utilise vs 2015

0
répondu Sony 2016-03-29 18:20:02

après avoir redémarré Visual Studio j'ai eu une erreur IntelliSense qui m'a pointé dans la bonne direction.

parce que "Microsoft.VisualStudio.DesignTools.XAML.LanguageService.Sémantique.Métadonnées.ReflectionTypeNode' est implémenté dans la même assemblée, vous devez définir l'attribut x:Name plutôt que de la Microsoft.VisualStudio.DesignTools.XAML.LanguageService.Sémantique.Métadonnées.Réflectionpropertynode attribut.

donc j'ai changé ça:

<local:MyView Name="test"/>

à ceci:

<local:MyView x:Name="test"/>

et ça a marché. Donc, cela nous donne quoi? 42 causes possibles? Irréel...

0
répondu l33t 2016-10-14 14:37:41

j'ai aussi un projet sur un partage réseau et cette erreur inattendue s'est présenté. J'ai essayé toutes les suggestions ci-dessus, y compris la copie du projet sur un disque local, le nettoyage, la reconstruction et l'ouverture et la fermeture VS. Rien de tout cela n'a résolu le problème.

ce qui a fonctionné pour moi était simplement supprimer la référence à l'espace de noms dans le dossier viewmodels (xlmns:vm=" clr-namespace:Myproj.ViewModel").

j'ai ajouté le type à mon xaml (DataTemplate DataType= " {x:Type vm: myviewmodel}"). Visual studio a alors détecté que l'espace de noms manquait et j'ai cliqué sur l'invite pour ajouter l'espace de noms.

0
répondu Haim Katz 2016-10-20 06:44:33

le déclarer dans un dictionnaire de ressources a fonctionné pour moi.

<Window.Resources>
    <c:IsNullConverter x:Key="IsNullConverter" />
</Window.Resources>

le problème semble être que l'analyseur chie lui-même quand il voit une extension de markup comme Converter={c:IsNullConverter}}" , mais est d'accord avec: Converter={StaticResource IsNullConverter} . Je pense que c'est peut-être où est le problème.

Windows 10, VS 2013

0
répondu Cool Blue 2016-11-29 10:02:39

j'ai eu 3 erreurs dans le projet et je me suis concentré sur cette erreur concernant ObjectDataProvider. J'ai trouvé que cette erreur ne peut pas être résolu si le projet ne peut pas construire en raison d'autres erreurs. J'avais deux autres gestionnaires d'événements dont le code avait été supprimé. J'avais aussi besoin de supprimer le code qui tentait de relier les manipulateurs aux commandes. Puis le projet a pu construire et voir que la classe que j'essayais de faire référence à partir D'ObjectDataProvider était disponible.

0
répondu BlueMonkMN 2017-07-22 18:54:38

le nom "XYZ" n'existe pas dans l'Espace-nom "clr-Espace-nom: ABC"

résolu!!

vérifiez si la fonction que vous voulez invoquer / la classe est présente dans l'espace de noms

Exemple Correct:

.XAML file

          <Window x:Class="objectbinding.MainWindow"
           <!--your xmlns:x .......
           namespace1 is the project name-->
           xmlns:m="clr-namespace:namespace1"
            Title="MainWindow" Height="350" Width="525">
    <Grid>
 <StackPanel Orientation="Vertical">
            <StackPanel.Resources>
                <ObjectDataProvider ObjectType="{x:Type m:StringData}"
                                    x:Key="anyname" MethodName="GetStrings"/>

            </StackPanel.Resources>

       ItemsSource="{Binding Source={StaticResource Runni}}" />
        </StackPanel>
    </Grid>

/ / StringData est le nom de classe dans xaml.cs et GetString est le Fonction

.XAML.Fichier CS

 namespace namespace1
    {

        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
            }

        }
// the class StringData is defined in namespace namespace 1
        public class StringData
        {
            ObservableCollection<String> lst = new ObservableCollection<String>();

            public StringData()
            {
                lst.Add("Abhishek");
                lst.Add("Abhijit");
                lst.Add("Kunal");
                lst.Add("Sheo");
            }
            public ObservableCollection<String> GetStrings()
            {
                return lst;
            }
        }
    }

mauvais exemple:

.XAML File

  <Window x:Class="objectbinding.MainWindow"
              <!--your xmlns:x .......
           namespace1 is the project name-->
           xmlns:m="clr-namespace:namespace1"
            Title="MainWindow" Height="350" Width="525">
    <Grid>
 <StackPanel Orientation="Vertical">
            <StackPanel.Resources>
                <ObjectDataProvider ObjectType="{x:Type m:StringData}"
                                    x:Key="anyname" MethodName="GetStrings"/>

            </StackPanel.Resources>

       ItemsSource="{Binding Source={StaticResource Runni}}" />
        </StackPanel>
    </Grid>

.XAML.CS

namespace namespace1
{

    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
//The StringData is defined in the class mainWindow not in namespace namespace1
        public class StringData
        {
            ObservableCollection<String> lst = new ObservableCollection<String>();

            public StringData()
            {
                lst.Add("Abhishek");
                lst.Add("Abhijit");
                lst.Add("Kunal");
                lst.Add("Sheo");
            }
            public ObservableCollection<String> GetStrings()
            {
                return lst;
            }
        }
    }

}
0
répondu Runni Kumari 2017-11-20 09:51:32

dans mon cas, cette erreur a été causée par le fait que les assemblages signés avec le "signal de retard seulement" ont été activés. La solution était d'exécuter la commande sn -Vr * à partir de la console du développeur (en tant qu'administrateur). Cela enregistre l'assemblage pour le saut de vérification. Puis redémarrez Visual Studio.

0
répondu Scroog1 2017-12-01 11:12:55

cela peut être dû à la configuration de libération. Designer doit être utilisé à partir de la configuration de débogage.

-2
répondu wishmaster35 2016-02-21 14:38:56