商城首页欢迎来到中国正版软件门户

您的位置:首页 >Blazor WebAssembly 懒加载配置教程

Blazor WebAssembly 懒加载配置教程

  发布于2025-12-29 阅读(0)

扫一扫,手机访问

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

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

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
  • 添加如下内容,防止懒加载程序集中的类型被裁剪:
<linker>
  <assembly fullname="YourAssembly" preserve="all" />
</linker>

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

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

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

验证懒加载是否生效

发布后检查 wwwroot/_framework/ 目录:

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

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

本文转载于:互联网 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注