gpt4 book ai didi

c# - 获取 MC3074 XML 命名空间 'AssemblyPartControl' 中不存在标签 'clr-namespace:EndGrain.View'

转载 作者:行者123 更新时间:2023-12-03 08:12:30 26 4
gpt4 key购买 nike

像许多其他人一样,我看到了这个编译错误。我是一名长期开发人员,在离开 WPF 多年后又回到了这里。

我有一个针对 net6.0-windows 的单个项目解决方案(切换到下面的 net5.0-windows 进行测试)。该项目是在 VS 2022 Pro 中创建的。我没有在 clr-namespace: 声明中指定 ; assembly= 。在广泛阅读之后,我相信这两种情况是导致此错误的最常见原因。

项目

<Project Sdk="Microsoft.NET.Sdk">    
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net5.0-windows</TargetFramework>
<Nullable>annotations</Nullable>
<UseWPF>true</UseWPF>
<AssemblyName>NTS$(MSBuildProjectName)Boards</AssemblyName>
</PropertyGroup>
</Project>

用户控件

<UserControl x:Class="EndGrain.View.AssemblyPartControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:vw="clr-namespace:EndGrain.View"
xmlns:vm="clr-namespace:EndGrain.ViewModel"
mc:Ignorable="d"
>
...
<Grid Background="{StaticResource BackgroundBrush}">
...
</Grid>
</UserControl>

用户控件隐藏代码

using System.Windows.Controls;

namespace EndGrain.View
{
/// <summary>
/// Interaction logic for AssemblyPartControl.xaml
/// </summary>
public partial class AssemblyPartControl : UserControl
{
public AssemblyPartControl()
{
InitializeComponent();
}
}
}

查看

<Window x:Class="EndGrain.View.AssemblyPartSandboxView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:vw="clr-namespace:EndGrain.View"
mc:Ignorable="d"
Title="AssemblyPartSandboxView" Height="100" Width="200">
<Grid>
<vw:AssemblyPartControl Width="100" Height="30" />
</Grid>
</Window>

我尝试过的

从 Visual Studio Professional 2022 17.0.2 开始

- Built the project without the UserControl. Builds fine.
- Typed in the <vw:AssemblyPartControl /> element. Built the project. Error list shows the error.
- Changing the target framework back to net5.0-windows (from net6.0-windows) does not help.

使用 Visual Studio 2019 Enterprise 16.11.7 打开 net5 项目

- Rebuilt the project. Error shows.
- Commented out the UserControl. Rebuilt. Builds fine.
- Uncommented the UserControl. Rebuilt. Error shows.

使用 Blend for Visual Studio Enterprise 2019 16.11.7 打开

- Dragged the UserControl to the design surface. Blend added the element with the vw namespace.
- Built the project, and the Error List shows the error.

在命名空间定义中添加了 ; assembly=NTSEndGrainBoards,因为我已经覆盖了默认的程序集名称。没有效果。

希望敏锐的眼睛能够看到我所犯的愚蠢错误;不可能这么难。预先感谢您的帮助。

最佳答案

当我完成问题时,我决定尝试删除非标准程序集名称。这就成功了。希望这对其他人有帮助,并再次感谢您的浏览。

修改后的项目

<Project Sdk="Microsoft.NET.Sdk">    
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net5.0-windows</TargetFramework>
<Nullable>annotations</Nullable>
<UseWPF>true</UseWPF>
</PropertyGroup>
</Project>

关于c# - 获取 MC3074 XML 命名空间 'AssemblyPartControl' 中不存在标签 'clr-namespace:EndGrain.View',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70384812/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com