名称“XYZ”不存在于名称空间“clr-namespace:ABC”

我正在创build一些标记扩展,并开始得到很奇怪的VS行为。 我已经提出并在单独的解决scheme中指出了这个问题。 问题是VS不能在XAML中创build一个CLR对象。

这里是:

视图:

<Window x:Class="WpfApplication4.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:wpfApplication4="clr-namespace:WpfApplication4"> <Window.Resources> <wpfApplication4:Dog x:Key="doggy" /> </Window.Resources> <Grid /> </Window> 

代码后面:

 using System.Windows; namespace WpfApplication4 { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } } } 

狗类:

 namespace WpfApplication4 { public class Dog { } } 

App.Xaml(App.Xaml.cs中没有代码):

 <Application x:Class="WpfApplication4.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" StartupUri="MainWindow.xaml"> <Application.Resources> </Application.Resources> </Application> 

项目设置

exception我得到:

 Error 1 The name "Dog" does not exist in the namespace "clr-namespace:WpfApplication4". \\hopr1\folders$\vxk\Documents\Visual Studio 2012\Projects\WpfApplication4\MainWindow.xaml 6 9 WpfApplication4 

我能够运行解决scheme,但devise失败,“无效标记”错误任何想法?

编辑

我正在运行VS 2012更新2 VS 2012更新1中的相同的解决scheme工作

您的解决scheme正在networking共享上运行。 .Net(和Visual Studio)应用程序在networking共享上运行时可能会遇到权限/访问问题。

复制你的解决scheme到本地驱动器(完全信任),你应该没问题。

有可能得到一个完全信任的networking驱动器 – 你可以在StackOverflow和其他地方find答案 – 但以我的经验,当我这样做的时候,我一直遇到障碍,所以尽量避免它,除非它是绝对关键的问题在手。

例如,这个问题给出了如何做到这一点的说明:

将FullTrust授予Visual Studio 2012和.Net 4.0的UNC共享

我只用VS2010试过这个(如链接所示),2012年你可能会有更好的喜悦。

对于任何现在遇到这个问题的人,在您做其他任何事情之前…如果您确定您的类/名称空间是正确的,重build还没有解决您的问题:

尝试重新启动Visual Studio

而已!

这似乎是Visual Studio 2012的一个bug(也似乎影响所有其他支持XAML开发的版本)


更新:如果重新启动Visual Studio不起作用,重新启动整个PC。

更新:如@Dunk的评论中所述,如果重新启动Visual Studio不起作用,请尝试删除.suo文件

我遇到同样的问题,但我的文件存储在本地。 我的IValueConverter驻留在与使用它的视图不同的程序集中。 即使VS2013智能感知提示以下,它不起作用:

 xmlns:conv="clr-namespace:MySharedAssembly.Converters" 

在我最后明确地添加了程序集后,它工作:

 xmlns:conv="clr-namespace:MySharedAssembly.Converters;assembly=MySharedAssembly" 

我坚持了几个小时这个错误。 组件和命名空间是正确的,类和引用也是正确的。 编译并运行好,只有devise师有问题与我。 唯一的工作

  1. 用于从x64到x86的devise目的
  2. 运行和debugging切换回到x64

我使用的是只有在x64版本中的3D party portable.library。

下载的DLL解决scheme

  1. 解除阻止.dll文件
    • 右键单击它并select属性
    • 在“常规”选项卡中解除封锁(请参阅图片)
  2. 确保VS重新validationXAML(也许通过重新启动它)

在这里输入图像描述

它仍然发生在VS 2015.我拿出了App.xaml中的SomeConverter:

 <Application.Resources> <!--Value Converters--> <local:SomeConverter x:Key="mySomeConverter"/> 

STRG移-B
把它放回去 – 它的工作。

创build一个符号链接到您的本地驱动器上的networking共享。

转到命令行并键入mklink / DC:\ LOCALFOLDER \ YOURNETWORKPATH

然后从本地文件夹中打开项目,所有问题都会消失。 现在所有的文件将仍然在您的networking共享。:)

我正在开始一个新的项目,并有这个问题。 这里列出的解决scheme都不适合我,包括删除suo文件,卸载/重新加载项目,重新启动VS等。

对我来说有效的是,因为这是一个新项目,我还没有build立它。 我删除了Window.DataContext元素到剪贴板,build立了一次项目(shift-ctrl-b),然后重新添加元素,它立即运作。

尝试广泛的解决scheme之前,请尝试以下操作:

我有完全相同的问题,我closures了导致错误的窗口/窗体,然后运行项目,

一旦项目运行成功并且没有恢复,错误似乎就清除了。

希望这有助于任何寻找快速解决scheme的人。

我在Visual Studio 2015中遇到了同样的错误,并通过取消选中“禁用项目代码button”来让devise器工作。

截图到设计器按钮

这已经让我烦恼了2008年,10年,12年,13年。

每当发生这种情况(是的,我正在networking共享 – 我不能避免它),我closuresVS,重命名文件夹,并重新打开项目。 10次​​中的9次,这是有效的。 一段时间。

对于其他人卡住了。

什么对我来说是更改名称空间别名从本地 ,到其他任何东西。

 xmlns:local="clr-namespace:ExampleNameSpace.Folder" /> <Grid> <StackPanel> <local:ReferencedUserControl /> </StackPanel> </Grid> 

 xmlns:blah="clr-namespace:ExampleNameSpace.Folder" /> <Grid> <StackPanel> <blah:ReferencedUserControl /> </StackPanel> </Grid> 

希望这可以帮助!

有同样的问题。 当我意识到有问题的class级被标记为internal

 internal class MyClass { } 

将其更改为public ,devise人员能够正确编译XAML。

对我而言, project properties中的Post Build中将MOVE更改为XCOPY ,然后re-build项目。 devise者可能需要在项目输出文件夹中的dll。 我正在使用vs 2015

重新启动Visual Studio后,我得到一个智能感知错误,指出我在正确的方向。

因为“Microsoft.VisualStudio.DesignTools.Xaml.LanguageService.Semantics.Metadata.ReflectionTypeNode”是在同一个程序集中实现的,所以必须设置x:Name属性而不是Microsoft.VisualStudio.DesignTools.Xaml.LanguageService.Semantics.Metadata。 ReflectionPropertyNode属性。

所以我改变了这个:

 <local:MyView Name="test"/> 

对此:

 <local:MyView x:Name="test"/> 

然后它的工作。 那么,这给了我们什么? 42个可能的原因? 虚幻…

我也有一个networking共享项目,这个错误意外地出现了。 我尝试了上面的所有build议,包括将项目复制到本地磁盘,清理,重build和打开和closuresVS. 这些都没有解决这个问题。

什么对我来说只是删除命名空间引用viewmodels文件夹(xlmns:vm =“clr-namespace:Myproj.ViewModel”)。

我将types添加到我的xaml(DataTemplate DataType =“{x:Type vm:myviewmodel}”)。 然后Visual Studio检测到命名空间丢失,我点击提示添加命名空间。

在资源字典中声明它为我工作。

 <Window.Resources> <c:IsNullConverter x:Key="IsNullConverter" /> </Window.Resources> 

问题似乎是parsing器在看到一个像Converter={c:IsNullConverter}}"这样的标记扩展的时候会自动Converter={c:IsNullConverter}}" ,但是对于: Converter={StaticResource IsNullConverter} ,我认为这也许就是问题所在。

Windows 10,VS 2013

我在项目中有3个错误,并专注于关于ObjectDataProvider的这个错误。 我发现如果由于其他错误而无法构build项目,则无法解决此错误。 我有一些其他事件处理程序的代码已被删除。 我还需要删除试图将处理程序链接到控件的代码。 然后该项目能够build立,看到我想从ObjectDataProvider引用的类是可用的。

这可能是由于发布configuration。 Designer需要从Debugconfiguration中使用。