XML命名空间中不存在标记

Ste*_*enT 18 c# silverlight xaml resourcedictionary

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

我收到一个资源字典的错误我正在制作(后来合并)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"
Run Code Online (Sandbox Code Playgroud)

创建要引用的资源

<modulemodel:ModelBindings x:Key="ModuleModelBindings"/>
Run Code Online (Sandbox Code Playgroud)

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

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

如果我删除ResourceDictionary文件的主体,代码编译得很好,但所有绑定都被破坏了.

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

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

<SharedResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:modulemodel="clr-namespace:Company.Project.Module.Folder;assembly=Company.Project.Module"
                    >
    <modulemodel:ModelBindings x:Key="ModuleModelBindings"/>

</SharedResourceDictionary>
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

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

小智 30

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

从:

的xmlns:ZZZ = "CLR-名称空间:YYY;装配= YYY"

至:

的xmlns:ZZZ = "CLR-名称空间:YYY;装配="

为assembly =留空值

这是适合我的解决方案.

  • 删除整个 'assembly=' :) (5认同)

Cod*_*dyF 15

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

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

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


Ste*_*enT 14

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

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

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


小智 5

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