这个错误似乎贴得到处都是但每个错误似乎都有自己的解决方案,没有一个解决了我的问题。
我正在创建(稍后合并)的资源字典出现错误,即XML命名空间"clr-namespace:Company. Project. Module. Folder"中不存在标记"ModelBindings";程序集=公司.项目.模块'
我引用的程序集是自定义的,并且包含在解决方案中。不仅如此,我们还查看了放入资源字典所在项目的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,也会发生同样的错误。
xaml和上面的SharedResourceDictionary位于命名空间Company.Project.Main中,它引用了定义SharedResourceDictionary的位置以及我放入上面代码中的不同模块项目
8条答案
按热度按时间x0fgdtte1#
根据this article,您只需执行以下操作:
发件人:
xmlns:ZZZ ="分类名称空间:YYY;程序集= YYY "
收件人:
xmlns:ZZZ ="分类名称空间:YYY;程序集="
为程序集保留空值=
这是对我有效的解决方案。
wztqucjr2#
这可能不是您的问题的解决方案,但我看到了您经常询问的错误,该问题通常是由加载程序集的问题引起的。
如果您检查您的汇编,它有一个黄色的三角形附加到它,那么它可能是不兼容您当前的项目设置,由于不同版本的. NET,或类似的东西。
这通常会失败而不显示任何消息,或者只会产生警告;当您尝试在XAML中引用该汇编时,您将得到一个如您所描述的错误。
blmhpbnm3#
看起来这主要是一个用户错误。但这也可能发生在其他人身上。当我从它的原始文件复制
xmlns:moduleviewmodel
定义时,我不得不自己添加assembly=部分。就像我说的,我自己添加了assembly=部分,并使用了自动完成功能,键入“xmlns:moduleviewmodel=”后,我们就可以看到下面的内容。就在我们发现错误之前,我们再次尝试了自动完成功能,因为我们发现7个命名空间中有一个没有产生错误。就在那时,我注意到汇编路径中有一个字母没有大写,而应该是大写。奇怪的是,自动完成功能实际上自己插入了这个错误。当我们编译时,我注意到了错误的字母。更奇怪的是,在我手动修复了所有路径后,我们再次尝试了自动完成功能,它拼写正确。我不知道错误的自动完成的原因,但与固定的字母,它编译得很好。
现在我只是想知道是否有人会相信自动完成是改变了我!
ggazkfy84#
检查错误列表中的警告,在我的情况下,那里有关于未解析的.Net 4.5.1引用的消息,而我的项目目标框架是4.5
nle07wnf5#
对于这个错误,我有一个完全不同的原因:
我试图使用程序集A中的类,所以我
1)已将对此程序集引用添加到项目中,
2)在我的项目中添加了对程序集A使用的程序集B的引用,
3)已添加到我的XAML
3)添加到我的代码中
这不起作用,我得到了这个“标记不存在”的错误。
"有什么帮助,是添加"
在我代码中,尽管我没有直接使用程序集B中的任何内容。
disho6za6#
如果在与WPF窗体相同的程序集中有用户控件,请确保在导入命名空间时删除程序集部分
错误的导入:xmlns:usercontrol=“用户控制器名称空间:CCFARKS.程序集=CCFARKS”
xmlns:usercontrol=“名称空间类型:CCFARKS.用户控件”
uxh89sit7#
这是一个老问题,但问题来自. csproj。确保在“itemgroup”部分中,“page”元素定义在“compile”元素之前。
好的:
不妙:
敬祝商祺,
oxalkeyp8#
如果您有此特定错误以外的其他错误,也可能会发生这种情况。更多的错误可能会导致文件无法正确编译,从而导致此错误。
首先尝试同时移除其他组建'ERRORS'和'WARNINGS',然后重新建置方案。