未定义的CLR命名空间

14

我有以下内容:

错误!错误!

错误提示 'clr-namespace' URI 引用的命名空间 '{0}' 未包含在程序集中。

我已经构建和重新构建了,但什么也没发生。我确定这必须可以工作,因为我下载的一个WPF演示应用程序与我的一切都相同。出了什么问题?


2
发生的情况是设计师有点粗糙,存在许多类似的问题。换句话说,不是你的问题,而是Visual Studio的问题。 - Roman Starkov
10个回答

26

假设您的ViewModel文件夹不为空(或者实际上有一个命名空间为BlooblieBlablie.ViewModel的类型),且BlooblieBlablie是程序集名称,则以下内容应该可以正常工作:

xmlns:vm="clr-namespace:BlooblieBlablie.ViewModel;assembly=BlooblieBlablie"

1
不需要汇编部分,因为命名空间与XAML文件在同一个程序集中。 - Daniel Hilgarth
啊,我因为你说的“或者实际上有一个类型,其命名空间为BlooblieBlablie.ViewModel”而得到了灵感。这就是问题所在——ViewModel文件夹中的类实际上需要一个AssemblyName,即AssemblyName.ViewModel。<i>然后</i>它应该可以工作了。 - Garth Marenghi
@Daniel:啊,说实话我不知道。我一开始就从头开始指定装配部件,一直保持这种做法。 - Willem van Rumpt

9

3

我曾经遇到过同样的问题,解决方法是不要将我的项目放在带有井号的路径中。

例如D:#Temp必须改为D:\Temp

我猜微软公司有人在URI和EscapedCodeBase上出了问题。


2

我曾经遇到过同样的错误信息,但是根本问题是不同的。我把我的MainWindow.xaml文件移动到了另一个文件夹中,但是忘记更新App.xaml中的StartupUri。之后我在App.xaml中更新了StartupUri,问题得到了解决。


2
此外,请验证.xaml文件的“BuildAction”(请参见文件属性)。 应该是“Page”。 在我移动文件并重命名命名空间之后,此设置以某种方式更改为“CodeAnalysisDictionary”。这也导致了这个错误。

1
在使用Visual Studio 2008解决方案时,我的Windows 7电脑崩溃了,之后出现了这个问题。似乎启动配置被清空了。我重置了它,然后就能找到命名空间了。这可能是其中一个原因,虽然不是主要原因,但如果你遇到同样的问题,可以尝试一下。

1
嗯,就我所看到的,那个名称空间根本不存在;-)在你的ViewModel文件夹中没有文件。而没有文件,就没有名称空间。名称空间不是通过文件夹结构定义的,而是在源文件内定义的。

我制作了这个截图,使其更容易查看。在我的实际应用程序中,我在ViewModel文件夹中确实有一些内容,即一个名为ViewModel.cs的类。 - Garth Marenghi
1
你确定那个文件中的命名空间是 BlooblieBlablie.ViewModel 吗? - Daniel Hilgarth

1
从你的截图来看,你的ViewModel文件夹似乎是空的。如果在命名空间BlooblieBlablie.ViewModel中没有类,则该命名空间尚不存在。

我制作了这个截图,使其更容易查看。在我的实际应用程序中,我在ViewModel文件夹中有一些内容,即一个名为ViewModel.cs的类。 - Garth Marenghi

0
今天我遇到了同样的问题,因为我不得不在命名空间中重命名类(以及文件)。所以我通过删除.sln文件,然后运行.csproj并重新创建.sln文件来解决了这个问题。

0

我曾经遇到过同样的问题,这是因为我将代码从另一个源中复制并粘贴到我的项目中,并在重命名对象时没有先构建。

这意味着Visual Studio或编译器无法检测到不正确的引用(例如,在我的代码中,我有这样的引用:

MyObect mo = new MyObect();

当我复制代码时,我将MyObect的拼写更正为MyObject,但是Visual Studio仍然引用了MyObect,并且没有发出任何警告。而且这段代码是.XAML文件的一部分,因此我不仅收到了您遇到的错误消息,还有.g.cs错误。所有这些都指向了错误的原因。

这也发生在ResourceDictionary中(在我的datatemplate声明中,用于所有VM绑定)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接