XML名称空间中不存在标记

这个错误似乎遍布整个地方,但每个人似乎都有自己的解决方案,其中没有一个解决了我的问题。

我收到的资源字典出错(后来合并)XML名称空间’clr-namespace:Company.Project.Module.Folder; assembly = Company.Project.Module’中不存在标签’ModelBindings’

我引用的程序集是自定义的,包含在解决方案中。 不仅如此,我们已经查看了放入资源字典所在项目的bin中的dll,并且在检查之后它包含了我想要引用的类。 所以我知道1. dll是在正确的位置被访问并且在引用中。 2. dll包含我想要的数据。

以下是资源字典的一些代码

命名空间的列表

xmlns:modulemodel="clr-namespace:Company.Project.Module.Folder;assembly=Company.Project.Module" 

创建要引用的资源

  

就像其他人的错误一样,intellisense说它是犹太教徒。 此外,xmlns列表是使用intellisense的自动完成function创建的,并手动重新输入。 都没有奏效。

我也尝试将所有内容移动到app.xaml,它仍然给了我同样的错误。

如果我删除ResourceDictionary文件的主体,代码编译正常,但所有绑定都被破坏。

最后,所有资源定义过去都在使用它们的xaml文件中定义,工作正常。 它只是在我尝试从一个不起作用的不同项目创建它们之后。 我改变了这个来修复错误,回到旧方法可能会有问题。

编辑:这是我在显示我正在使用的资源字典方面能做的最好的事情

    

如果我用ResourceDictionary替换SharedResourceDictionary,则会发生相同的错误。

上面的app.xaml和SharedResourceDictionary在命名空间Company.Project.Main中进行了比较,并且它既引用了SharedResourceDictionary,也引用了我在上面的代码中放入的不同模块项目。

看起来它主要是用户错误。 但这可能发生在其他人身上。 当我从原始文件复制xmlns:moduleviewmodel定义时,我必须自己添加assembly =部分。 就像我说的那样,我自己也做了,并且使用自动填充来输入’xmlns:moduleviewmodel =’。 在我们发现错误之前,我们再次尝试了自动完成,因为我们发现7个名称空间中没有一个没有生成错误。 就在那时我注意到assembly路径上有一封信没有大写。 奇怪的是自动完成实际上自己插入了这个错误。 我们编译的时候注意到了这封错误的信件。 更奇怪的是,在我手动修复所有路径之后,我们再次尝试了自动完成,并且拼写正确。

我不知道错误的自动完成的原因,但固定的字母,它编译得很好。

现在我只是想知道是否有人会相信自动完成function正在改变我!

根据这篇文章 ,你只需按照以下步骤操作:

从:

的xmlns:ZZZ = “CLR-名称空间:YYY;assembly= YYY”

至:

的xmlns:ZZZ = “CLR-名称空间:YYY;assembly=”

为assembly =留空值

这是适合我的解决方案。

看起来它主要是用户错误。 但这可能发生在其他人身上。 当我从原始文件复制xmlns:moduleviewmodel定义时,我必须自己添加assembly =部分。 就像我说的那样,我自己也做了,并且使用自动填充来输入’xmlns:moduleviewmodel =’。 在我们发现错误之前,我们再次尝试了自动完成,因为我们发现7个名称空间中没有一个没有生成错误。 就在那时我注意到assembly路径上有一封信没有大写。 奇怪的是自动完成实际上自己插入了这个错误。 我们编译的时候注意到了这封错误的信件。 更奇怪的是,在我手动修复所有路径之后,我们再次尝试了自动完成,并且拼写正确。

我不知道错误的自动完成的原因,但固定的字母,它编译得很好。

现在我只是想知道是否有人会相信自动完成function正在改变我!

这可能不是您的问题的解决方案,但我看到您经常询问的错误,问题通常是由加载程序集时出现问题引起的。

如果你检查你的汇编,并且它附有一个黄色三角形,那么它可能与你当前的项目设置不兼容,因为有不同版本的.NET ,或类似的东西。

这通常会无声地失败,或者只会引起警告; 当您尝试在XAML中引用汇编时,您将收到类似于您所描述的错误。

检查错误列表中的警告,在我的情况下,有关未解析的.Net 4.5.1引用的消息,而我的项目目标框架是4.5

我有一个完全不同的原因导致此错误:

我试图使用程序集A中的类,所以我

1)在我的项目中添加对此程序集的引用,

2)将程序集B使用的程序集B添加到我的项目中,

3)添加到我的XAML

  xmlns:assemblyA="clr-namespace:A;assembly=A" 

3)添加到我的代码中

 using A; 

这没用,我得到了这个“标签不存在”的错误。

有什么帮助,正在补充

 using B; 

在我的代码中,虽然我不直接使用程序集B中的任何内容。