You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET MAUI中clr-namespace无法解析AdminPage类型的问题求助

问题描述

我在Pages目录下创建了独立的Administration文件夹,但出现以下错误:

Error XFC0000 Cannot resolve type "clr-namespace:ODDMob.Pages:AdminPage".

AppShell.xaml中的配置如下:

<Shell
    x:Class="ODDMob.AppShell"
    xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:local="clr-namespace:ODDMob.Pages"
    xmlns:administration="clr-namespace:ODDMob.Pages.Administration"
....
    <TabBar x:Name="MyTabBar" Title="Binding Current Title">
        <Tab>
            <ShellContent x:Name="TabStatisticsPage"  Icon="statistics.svg" Title="Statistics" ContentTemplate="{DataTemplate local:StatisticsPage}" Route="StatisticsPage" IsVisible="False"/>
        </Tab>

        <Tab>
            <ShellContent x:Name="AdminPage"  Icon="secureshield.svg" Title="Administrator" ContentTemplate="{DataTemplate local:AdminPage}" Route="AdminPage" IsVisible="False"/>
        </Tab>
        
    </TabBar>
</Shell>

位于独立文件夹的TabStatisticsPage未出现任何错误。我多次尝试清理/重建项目、关闭VS甚至重启电脑,但问题仍未解决。

项目Pages目录结构如下:

  • Administration -> AdminPage.xaml
  • Partials(文件夹)-> 若干页面
  • Statistics(文件夹)-> 若干页面
  • ...其他页面

我将AdminPage移至Partials文件夹后依旧无效,其代码如下:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="ODDMob.Pages.Partials.AdminPage"
             Title="AdminPage">
    <VerticalStackLayout>
        <Label 
            Text="AdminPage to .NET MAUI!"
            VerticalOptions="Center" 
            HorizontalOptions="Center" />
    </VerticalStackLayout>
</ContentPage>

解决方案

1. 修正命名空间引用匹配

当AdminPage所在文件夹变化时,其命名空间也会改变,但AppShell中仍使用旧的命名空间别名,导致类型无法解析:

  • 若AdminPage在Administration文件夹:AppShell中已声明xmlns:administration="clr-namespace:ODDMob.Pages.Administration",需把local:AdminPage改为administration:AdminPage
  • 若AdminPage移到Partials文件夹:先在AppShell中添加Partials的命名空间声明:
    xmlns:partials="clr-namespace:ODDMob.Pages.Partials"
    
    再将ShellContent中的local:AdminPage替换为partials:AdminPage

2. 同步后台代码命名空间

确保AdminPage.xaml.cs的命名空间与xaml文件中x:Class属性完全一致,例如移到Partials后,后台代码应为:

namespace ODDMob.Pages.Partials;

public partial class AdminPage : ContentPage
{
    public AdminPage()
    {
        InitializeComponent();
    }
}

3. 确认项目文件包含

右键项目 → 编辑项目文件,检查AdminPage的xaml和xaml.cs是否被正确包含:

<ItemGroup>
  <MauiXaml Include="Pages\Partials\AdminPage.xaml" />
</ItemGroup>
<ItemGroup>
  <Compile Include="Pages\Partials\AdminPage.xaml.cs" />
</ItemGroup>

4. 彻底清理重建

手动删除项目目录下的bin和obj文件夹,再在VS中执行清理解决方案 → 重新生成解决方案,避免缓存问题。


内容的提问来源于stack exchange,提问作者Robert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 19:17:40