XML命名空间clr-namespace:XXX中不存在标记“ViewModelLocator”

我尝试了许多其他解决方案但没有任何成功。 我有一个名为ViewModelLocator的类,它位于我的可移植类库中。 它有一个名为ViewModels的属性,它的类型为Dictionay

然后我有一个引用可移植类库的Windows Phone 8项目。 我在WP8 app.xaml中添加了以下内容:

          

当我在标签上按F12时,它会导航到我的pcl中的正确类和/或属性。 这表明VS知道对象,但是当我尝试构建时,我收到以下错误:

XML命名空间’clr-namespace中不存在标记’ViewModelLocator’:Foo.Core.Portable.ViewModel; assembly = Foo.Core.Portable’。

XML命名空间’clr-namespace中不存在标记’SampleViewModel’:Foo.Core.Portable.ViewModel; assembly = Foo.Core.Portable’。

有人可以提供一些帮助吗?

[更新]我在我的pcl项目中引用了mvvm light的pcl版本。 这就是ViewModelLocator类的样子:

 public class ViewModelLocator { public dynamic this[string viewModelName] { get { if (this.ViewModels.ContainsKey(viewModelName)) { return this.ViewModels[viewModelName]; } else { return null; } } } public Dictionary ViewModels { get; set; } public ViewModelLocator() { this.ViewModels = new Dictionary(); } } 

我的WP8项目也使用了mvvm light pcl程序集。 我注意到,如果我使用ViewModelBase类作为字典值,那么当我得到错误时。 这是因为在两个项目之间使用mvvm light pcl存在问题?! [更新]

提前谢谢了!! 亲切的问候,

我刚刚在.Net 4.5项目中遇到了这个问题。 我的解决方案是更改为.Net 4.0,忽略警告,然后更改回.Net 4.5。 然后问题就消失了。

不知道这对其他人是否可行,但它对我有用。

最好的祝福。

好的,所以我不确定我在第一次尝试时做错了什么,但是我重新创建了解决方案并执行了或多或少相同的步骤,我没有再收到错误?! O_O

我知道这有点晚了但我在使用WPF桌面应用程序和控件库时遇到了同样的问题。 该库的默认目标框架是.Net 4,但我在Visual Studio中创建后的桌面应用程序默认情况下是使用.Net 4客户端配置文件创建的。 我将桌面应用程序从.Net 4客户端配置文件更改为.Net 4并且工作正常。