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

.NET MAUI Blazor共享页面无法在MAUI应用加载的问题求助

解决MAUI Blazor加载共享Razor类库页面的问题

关键配置步骤

MAUI Blazor注册共享程序集的逻辑和Blazor Server不同,需在MauiProgram.cs中配置RazorComponentsOptions来添加额外程序集:

  1. 引入必要命名空间:
using Microsoft.AspNetCore.Components.Web;
  1. 在CreateMauiApp方法内,修改AddRazorComponents的配置,添加共享类库的程序集:
builder.Services.AddRazorComponents()
    .AddInteractiveServerComponents()
    .AddAdditionalAssemblies(typeof(SharedGui._Imports).Assembly);

这里通过typeof(SharedGui._Imports).Assembly获取共享类库的程序集,也可以替换为共享类库中任意页面或组件的类型,比如typeof(SharedGui.Pages.ProductList).Assembly

  1. 确认NativeApp项目已正确引用SharedGui类库:
  • 右键NativeApp项目 → 选择「项目引用」 → 勾选SharedGui

额外排查点

  • 检查SharedGui中页面的@page路由属性是否正确,比如@page "/products"这类路由没有拼写错误
  • 验证NativeApp的App.razor中Router组件是否正确配置额外程序集:
<Router AppAssembly="@typeof(App).Assembly"
        AdditionalAssemblies="@(_additionalAssemblies)">
    <Found Context="routeData">
        <RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
    </Found>
    <NotFound>
        <LayoutView Layout="@typeof(MainLayout)">
            <p>Sorry, there's nothing at this address.</p>
        </LayoutView>
    </NotFound>
</Router>

@code {
    private IEnumerable<Assembly> _additionalAssemblies = new[] { typeof(SharedGui._Imports).Assembly };
}

这种在App.razor中直接指定AdditionalAssemblies的方式,和MauiProgram中的配置二选一即可,也可同时配置

验证操作

配置完成后,清理解决方案,重新生成NativeApp项目,运行MAUI应用测试共享页面是否正常加载。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 07:46:05