名称“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师有问题与我。 唯一的工作
- 用于从x64到x86的devise目的
- 运行和debugging切换回到x64
我使用的是只有在x64版本中的3D party portable.library。
下载的DLL解决scheme
- 解除阻止.dll文件
- 右键单击它并select属性
- 在“常规”选项卡中解除封锁(请参阅图片)
- 确保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中使用。