【问题标题】:The tag 'Employee' does not exist in XML namespace 'clr-namespace:XYZ;assembly=XYZ'XML 命名空间 'clr-namespace:XYZ;assembly=XYZ' 中不存在标签 'Employee'
【发布时间】:2015-07-27 11:24:31
【问题描述】:

我正在尝试一个简单的 WPF 应用程序。 XAML 代码是:

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:sys="clr-namespace:System;assembly=mscorlib"
        xmlns:local="clr-namespace:WpfApplication1;assembly=WpfApplication1"
        Title="My First WPF Demo" Height="350" Width="525">
    <Window.Resources>
        <sys:Int32 x:Key="i">10</sys:Int32>
        <local:Employee x:Key="emp2"></local:Employee> --> THIS LINE
    </Window.Resources>
    <StackPanel>
        <TextBox x:Name="txtName" FontSize="18" Margin="20"></TextBox>
        <Button x:Name="btnClickMe" FontSize="18" Margin="20" 
                Click="btnClickMe_Click">Click Me</Button>
        <TextBlock x:Name="lblName" FontSize="18" Margin="20"></TextBlock>
        <Label x:Name="lblEmpInfo" FontSize="18" Margin="20"></Label>
        <Label x:Name="lblEmpInfo2" FontSize="18" Margin="20"></Label>
    </StackPanel>
</Window>

我在同一个项目中有一个Employee类,如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WpfApplication1
{
    public class Employee
    {
        public int ID { get; set; }
        public string Name { get; set; }
    }
}

当我尝试构建我的项目时,我得到了错误:

错误 1 ​​XML 命名空间中不存在标签“Employee” 'clr 命名空间:WpfApplication1;程序集=WpfApplication1'。 9号线 位置 10。

【问题讨论】:

  • 还没有真正检查过,但是...您是否尝试过删除 ;assembly=WpfApplication1 部分?只留下xmlns:local="clr-namespace:WpfApplication1"
  • 尝试清理并重建您的解决方案
  • 试了很多次。我什至尝试过重新启动视觉工作室
  • 我希望您的项目中没有任何文件夹。只有文件在那里
  • 是的,我刚刚添加了一个类。我没有对结构进行任何其他更改

标签: c# .net wpf xaml visual-studio-2013


【解决方案1】:

还没有真正检查过,但是...您是否尝试过删除 assembly=WpfApplication1 部分?只留下xmlns:local="clr-namespace:WpfApplication1"

【讨论】:

  • 当我删除程序集值时,我收到错误The name 'Employee' doesn't exist in the namespace 'clr-namespace:WpfApplication1'
  • 奇怪...这个错误根本没有意义。尝试删除该 XAML 行,重新构建,然后再次添加:/
【解决方案2】:

在您的情况下使用这种方式: xmlns:local="clr-namespace:WpfApplication"

【讨论】:

  • 当我删除程序集值时,我收到错误The name 'Employee' doesn't exist in the namespace 'clr-namespace:WpfApplication1'
  • @Anisha 请尝试清理并重建您的解决方案,这个错误不应该出现。
【解决方案3】:

我测试了您的代码(Windows 7、Visual Studio 2012 Update 4)并遇到了同样的情况。在尝试了一些想法之后(几个月前我认为有同样的问题),以下“解决方法”对我有用:

  1. 从 MainWindow.xaml 中删除“错误行”和命名空间(但将 Employee.cs 保留在项目中)
  2. 构建解决方案! (我认为 Visual Studio 需要构建您的 Employee.cs 之前您可以在 XAML 中实例化对象)
  3. 在没有显式程序集的情况下添加您的 Employee 和命名空间

我期待听到它是否解决了问题

【讨论】:

【解决方案4】:

这是一个老问题,但这是什么工作:

我将标签从

<local:MyClass Name="TagName"></local:MyClass>

收件人:

<local:MyClass Name="TagName"/>

但是抛出了以下错误:

Because 'MyClass' is implemented in the same assembly, you must set the x:Name attribute rather than the Name attribute. 

所以我换了工作:

<local:MyClass x:Name="TagName"/>

然后也尝试并工作:

 <local:MyClass x:Name="TagName"></local:MyClass>

【讨论】:

    【解决方案5】:

    我遇到了类似的问题。尝试重建,清理,重新启动 Visual Studio,再次重建,但没有解决问题。我还删除了assembly=... 部分,它没有帮助。

    然后我尝试将项目移动到我的硬盘(它最初在我的文档文件夹中,位于映射的网络驱动器上),突然问题就消失了!不知道为什么,但如果其他人仍然有这个问题,值得一试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-29
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 2014-02-15
      • 1970-01-01
      • 2013-04-19
      • 1970-01-01
      相关资源
      最近更新 更多