这个错误似乎遍布整个地方,但每个人似乎都有自己的解决方案,但都没有解决我的问题。
我收到资源字典的错误,我正在制作(后来合并)XML命名空间'clr-namespace:Company.Project.Module.Folder; assembly = Company.Project中不存在标签'ModelBindings' .Module'
我引用的程序集是自定义的并包含在解决方案中。不仅如此,我们已经查看了放入资源字典所在项目的bin中的dll,并且在检查之后它包含了我想要引用的类。所以我知道1. dll在正确的位置被访问并且在引用中。 2. dll包含我想要的数据。
以下是资源字典的一些代码
命名空间列表
xmlns:modulemodel="clr-namespace:Company.Project.Module.Folder;assembly=Company.Project.Module"
创建要引用的资源
<modulemodel:ModelBindings x:Key="ModuleModelBindings"/>
与其他人的错误一样,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>
如果我用ResourceDictionary替换SharedResourceDictionary,则会发生同样的错误。
上面的app.xaml和SharedResourceDictionary在命名空间Company.Project.Main中是比较性的,并且它既引用了SharedResourceDictionary的定义,也引用了我在上面代码中放入的不同模块项目的解决方案 的
看起来这主要是用户错误。但这可能发生在其他人身上。当我从原始文件复制xmlns:moduleviewmodel定义时,我必须自己添加assembly =部分。就像我说的那样,我自己也做了,并且在输入'xmlns:moduleviewmodel ='时使用自动完成以下内容。在我们发现错误之前,我们再次尝试了自动完成,因为我们发现7个名称空间中没有一个没有生成错误。就在那时我注意到装配路径上有一封信没有大写。奇怪的是自动完成实际上自己插入了这个错误。我们编译的时候注意到了错误的字母。更奇怪的是,在我手动修复所有路径之后,我们再次尝试了自动完成功能,并且拼写正确。
我不知道错误的自动完成的原因,但是使用固定的字母编译就好了。
现在我只是想知道是否有人会相信自动完成功能正在改变我!
答案 0 :(得分:27)
根据this article,您只需执行以下操作:
FROM:
的xmlns:ZZZ = “CLR-名称空间:YYY;装配= YYY”
TO:
的xmlns:ZZZ = “CLR-名称空间:YYY;装配=”
为assembly =
留空值这是适合我的解决方案。
答案 1 :(得分:14)
看起来这主要是用户错误。但这可能发生在其他人身上。当我从原始文件复制xmlns:moduleviewmodel
定义时,我必须自己添加assembly =部分。就像我说的那样,我自己也做了,并且在输入'xmlns:moduleviewmodel ='时使用自动完成以下内容。在我们发现错误之前,我们再次尝试了自动完成,因为我们发现7个名称空间中没有一个没有生成错误。就在那时我注意到装配路径上有一封信没有大写。奇怪的是自动完成实际上自己插入了这个错误。我们编译的时候注意到了错误的字母。更奇怪的是,在我手动修复所有路径之后,我们再次尝试了自动完成功能,并且拼写正确。
我不知道错误的自动完成的原因,但是使用固定的字母编译就好了。
现在我只是想知道是否有人会相信自动完成功能正在改变我!
答案 2 :(得分:13)
这可能不是您的问题的解决方案,但我看到您经常询问的错误,问题通常是由加载程序集时出现问题引起的。
如果你检查你的汇编,并且它附有黄色三角形,那么它可能与你当前的项目设置不兼容,因为不同版本的.NET ,或者某些东西排序
这通常会无声地失败,或者只会引起警告;当您尝试在XAML中引用汇编时,您将收到类似于您描述的错误。
答案 3 :(得分:2)
检查错误列表中的警告,在我的情况下,有关未解析的.Net 4.5.1引用的消息,而我的项目目标框架是4.5
答案 4 :(得分:1)
我有一个完全不同的原因导致此错误:
我试图使用程序集A中的类,所以我
1)将对此程序集的引用添加到我的项目中,
2)将程序集B使用的程序集B的引用添加到我的项目
3)添加到我的XAML
xmlns:assemblyA="clr-namespace:A;assembly=A"
3)添加到我的代码
using A;
这没用,我得到了这个“标签不存在”的错误。
有什么帮助,正在添加
using B;
在我的代码中,虽然我不直接使用程序集B中的任何内容。
答案 5 :(得分:1)
如果您在与WPF表单相同的程序集中具有用户控件,请确保在导入名称空间时摆脱了程序集部分
错误导入:xmlns:usercontrol =“ clr-namespace:CCFARKS.UserControls; assembly = CCFARKS”
Corret:xmlns:usercontrol =“ clr-namespace:CCFARKS.UserControls”
答案 6 :(得分:0)
这是一个老问题,但是,问题来自.csproj。 确保在“ itemgroup”部分的“ compile”元素之前定义了“ page”元素。
好:
<ItemGroup>
...
<Page Include="ScreenComponents\StatusBar.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Compile Include="ScreenComponents\StatusBar.xaml.cs">
<DependentUpon>StatusBar.xaml</DependentUpon>
</Compile>
…
不好:
<ItemGroup>
...
<Compile Include="ScreenComponents\StatusBar.xaml.cs">
<DependentUpon>StatusBar.xaml</DependentUpon>
</Compile>
<Page Include="ScreenComponents\StatusBar.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
…
致谢