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

11次阅读

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

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

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 设置和运行时注册三处是否一致。

text=ZqhQzanResources