Blazor WebAssembly 懒加载需三步:在.csproj中声明并启用,配置LinkerConfig.xml保留程序集,且在Program.cs注册AddLazyAssemblyLoading();三者缺一不可。

Blazor WebAssembly 支持懒加载(Lazy Loading)程序集,能显著减少首屏加载体积,提升启动速度。关键在于正确配置 LinkerConfig.xml、启用懒加载开关,并在 Program.cs 中注册按需加载的程序集。
启用懒加载开关
在项目文件(.csproj)中添加以下属性,开启 WebAssembly 懒加载支持:
-
—— 声明需要懒加载的程序集(可多行)YourAssembly.dll -
—— 推荐同时启用裁剪(与懒加载兼容)true - 确保使用 .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)
验证懒加载是否生效
发布后检查 wwwroot/_framework/ 目录:
- 目标程序集(如
YourAssembly.dll)应独立存在,不包含在dotnet.wasm或主程序集中 - 浏览器开发者工具的 Network 面板中,该 DLL 应在首次访问对应功能时才发起请求
- 查看控制台是否有
Loaded assembly: YourAssembly.dll日志(需启用日志级别为Debug)
基本上就这些。配置简单但细节容易出错,重点核对项目文件声明、Linker 设置和运行时注册三处是否一致。










