Wpf XAML中的命名空间错误中不存在该名称

Wpf XAML中的命名空间错误中不存在该名称,wpf,vb.net,xaml,visual-studio-2012,Wpf,Vb.net,Xaml,Visual Studio 2012,使用VS2012处理VB.NET WPF应用程序。我有一个简单的MusicLayer教程应用程序,我正在使用它来学习WPF。我正在逐步将教程的C#版本转换为VB.NET 它在应用程序中有两个类,它们都位于同一命名空间下。我可以在XAML中引用名称空间,但是当我尝试在XAML中引用class对象时,我得到了一个错误,无法编译 奇怪的是,IntelliSense既可以通过xmlns:c=标记引用名称空间,也可以使用键入类对象。如果程序集与包含类的名称空间不同,则必须显式指定它 例:- 在我的例子中,

使用VS2012处理VB.NET WPF应用程序。我有一个简单的MusicLayer教程应用程序,我正在使用它来学习WPF。我正在逐步将教程的C#版本转换为VB.NET

它在应用程序中有两个类,它们都位于同一命名空间下。我可以在XAML中引用名称空间,但是当我尝试在XAML中引用class对象时,我得到了一个错误,无法编译


奇怪的是,IntelliSense既可以通过xmlns:c=标记引用名称空间,也可以使用
键入类对象。如果程序集与包含类的名称空间不同,则必须显式指定它

例:-


在我的例子中,这是因为其他编译错误。当其他错误解决后,这个看似相关的错误也从列表中删除。特别是错误列表底部和您最近更改的页面上的错误

因此,不要直接关注这个错误,而是首先关注其他错误


我也遇到了同样的问题,在我的案例中,“标记设计”视图要求我重新生成解决方案,但没有向我显示包含以下消息的表单布局:
设计视图不适用于x64和ARM目标平台
,或
生成项目以更新设计视图

无法通过重建解决方案来解决此问题(无论是设计视图还是“名称空间中不存在名称”错误)

我想这是因为我使用了解决方案->属性>配置属性上的设置

我最终用两份工作解决了这个问题:

  • 选中页面“生成”列上的所有复选框:解决方案->属性->配置属性
  • 将解决方案配置从调试更改为发布,反之亦然

  • 我认为这是Visual Studio 2012 Update 2中的一个错误。

    VB.NET不会像在C#中那样根据文件夹结构自动添加名称空间信息。我想我正在学习与您相同的教程(在24小时内自学WPF),并对VB进行相同的转换

    我发现您必须手动将名称空间信息添加到XAML类和XAML.VB代码中,才能使用书中描述的名称空间。即使如此,VB也不会像在VB中那样自动将名称空间分配给程序集


    这里还有一篇文章介绍了如何将其包含在项目模板中,以便在编写wpf代码时自动生成名称空间信息-

    ,并告诉VS“名称ABCDE在名称空间clr名称空间中不存在:ABC”。但是您可以完全成功地构建您的项目,这只是一个小小的不便,因为您看不到UI设计(或者只是想清理代码)

    试着做到以下几点:

    • 在VS中,右键单击解决方案->属性->配置属性

    • 打开一个新对话框,尝试将项目配置从调试更改为发布,或反之亦然


    之后,重新构建您的解决方案。它可以解决您的问题。

    在解决方案属性页中,检查包含“UpdateMediaElement”的程序集平台以及包含“UpdateMediaElement”子类或实现的任何超类和接口的关联。似乎所有这些程序集的平台都必须是“AnyCPU”。

    尝试将构建目标平台更改为x86并构建项目


    我通过Subversion注意到,我显然将项目构建平台目标更改为x64。这是我唯一的改变。在进行更改之后,代码运行了一段时间,然后才开始显示您遇到的相同错误。我将平台目标更改为x86以进行测试,突然我的设计器又开始工作了。随后,我将其改回x64,问题完全消失了。我怀疑设计者在x32中构建了某种缓存代码,而更改x64构建平台会在您更改代码时破坏它。

    同样的问题困扰着Visual Studio 2013,Service Pack 4。 我还尝试了Visual Studio 2015预览版,结果也一样

    这只是WPF可视化工具的一个限制,Visual Studio团队尚未修复。 作为证明,在x86模式下构建启用可视化工具,在x64模式下构建禁用它


    奇怪的是,intellisense适用于Visual Studio 2013 Service Pack 4。

    另一个可能的原因是:生成后事件正在从生成文件夹中删除项目DLL


    澄清:WPF设计器可能会报告“名称XXX不存在于名称空间中…”,即使名称确实存在于名称空间中,并且如果生成后事件将项目DLL从生成文件夹(bin\Debug、bin\Release等)中删除,则项目生成和运行正常。我在Visual Studio 2015中有过这方面的个人经验。

    我看到这个问题通过清除Xaml设计阴影缓存而消失。我在Visual Studio 2015更新1中遇到了问题

    在Visual Studio 2015中,缓存位于以下位置:

    %localappdata%\Microsoft\VisualStudio\14.0\Designer\ShadowCache
    
    过程:

  • 右键单击解决方案资源管理器中的解决方案并选择“清洁解决方案”
  • 关闭Visual Studio
  • 删除ShadowCache文件夹
  • 重新打开Visual Studio项目
  • 重建解决方案

  • 瞧,没有更多的名称空间错误

    不知道这是否有助于其他人

    我是WPF的新手,还是VB.net的新手,所以我假设这个错误是由于我做了一些愚蠢的事情造成的。。。。。。。。假设我真的是!通过将项目从共享驱动器移动到本地驱动器,我成功地摆脱了它。 错误消失了,项目完美地编译了,没有进一步的问题了。看
    xmlns:c="clr-namespace:MusicPlayer.Controls"
    
      <c:UpdatingMediaElement Name="MyMediaElement" />
    
    xmlns:Local="clr-namespace:MusicPlayer.Controls;assembly=MusicPlayer"
    
    %localappdata%\Microsoft\VisualStudio\14.0\Designer\ShadowCache
    
    firstDepth.secondDepth.Fubar
    
    firstDepth.secondDepth
    
    xmlns:util="clr-namespace:LiveSpielTool.Utils;assembly="