Blazor WebAssembly 懒加载程序集配置方法

来源:这里教程网 时间:2026-02-21 17:41:07 作者:

Blazor WebAssembly 支持懒加载(Lazy Loading)程序集,能显著减少首屏加载体积,提升启动速度。关键在于正确配置

LinkerConfig.xml
、启用懒加载开关,并在
Program.cs
中注册按需加载的程序集。

启用懒加载开关

在项目文件(

.csproj
)中添加以下属性,开启 WebAssembly 懒加载支持:

<blazorwebassemblylazyload>YourAssembly.dll</blazorwebassemblylazyload>
—— 声明需要懒加载的程序集(可多行)
<publishtrimmed>true</publishtrimmed>
—— 推荐同时启用裁剪(与懒加载兼容)
确保使用 .NET 6 或更高版本(懒加载自 .NET 6 正式支持)

配置 Linker(可选但推荐)

为避免链接器误删懒加载所需的类型,需在

LinkerConfig.xml
中保留相关入口点:

在项目根目录创建
LinkerConfig.xml
添加如下内容,防止懒加载程序集中的类型被裁剪:
  

在 Program.cs 中注册懒加载程序集

调用

WebAssemblyHostBuilder.Services.AddLazyAssemblyLoading()
启用运行时懒加载能力:

Program.cs
的构建主机前添加该服务注册
确保所有懒加载程序集已通过
BlazorWebAssemblyLazyLoad
声明,否则运行时会报错“Assembly not found”
实际加载由
AssemblyLoadContext.Default.LoadFromStreamAsync()
或组件级
dynamic import
触发(如路由组件或
Lazy<t></t>

验证懒加载是否生效

发布后检查

wwwroot/_framework/
目录:

目标程序集(如
YourAssembly.dll
)应独立存在,不包含在
dotnet.wasm
或主程序集中
浏览器开发者工具的 Network 面板中,该 DLL 应在首次访问对应功能时才发起请求 查看控制台是否有
Loaded assembly: YourAssembly.dll
日志(需启用日志级别为
Debug

基本上就这些。配置简单但细节容易出错,重点核对项目文件声明、Linker 设置和运行时注册三处是否一致。

相关推荐