尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Blazor 入门实操:3 步打包 WebAssembly 运行时,看懂每个产物

Blazor 入门实操:3 步打包 WebAssembly 运行时,看懂每个产物 Blazor 入门实操3 步打包 WebAssembly 运行时看懂每个产物【免费下载链接】blazorBlazor moved to https://github.com/dotnet/aspnetcore项目地址: https://gitcode.com/gh_mirrors/bl/blazor打开终端你先把 Blazor 在浏览器里跑 C# 的那套运行时构建、打包的过程走一遍。这个仓库就是 Blazor WebAssembly 运行时和配套构建工具的源码。下面三步克隆、构建、打包走下来你会拿到一个属于自己的运行时 nupkg也清楚产物里哪些目录值得动手改。开始之前把环境对一遍项目要求怎么确认.NET SDK3.1.100global.json 里写死了dotnet --version输出 3.1.100Node.js已安装且在 PATH 上node -v能打出版本号NuGet 源NuGet.config 里 4 个 dnceng 公共源可达dotnet restore不报 404仓库gh_mirrors/bl/blazor 的一份克隆根目录能看到Blazor.sln 把运行时打包跑起来的 3 步第 1 步克隆源码git clone https://gitcode.com/gh_mirrors/bl/blazor会看到根目录是Blazor.slnsrc/下挂着 BuildTools、Runtime、DebugProxy 三个项目。目录里找到 sln 文件说明这步没问题。第 2 步构建全部项目dotnet build Blazor.sln会看到BuildTools 先编译出 ilwipe 命令行工具Runtime 随后编译。Directory.Build.props 开了TreatWarningsAsErrors有警告也会让构建停下。输出里出现0 个错误说明这步没问题。第 3 步把运行时打成 nupkgdotnet pack src/Microsoft.AspNetCore.Components.WebAssembly.Runtime会看到artifacts 下生成Microsoft.AspNetCore.Components.WebAssembly.Runtime.*.nupkg包内tools/dotnetwasm里装着 dotnet.wasm 和 dotnet.js 两个文件。解开包能找到运行时二进制说明这步没问题。 生成物里哪几处值得看一眼incoming/wasm/浏览器加载的运行时主体dotnet.wasm 和 dotnet.js 都在里面升级 Mono 时换它。incoming/bcl/及Facades/BCL 程序集全集一百五十个左右决定运行时里能用哪些类。bclwipe/规定从哪些程序集里删掉哪些成员想瘦身就改这里。tools/binaries/monolinker/Mono 链接器下游 Blazor 工程靠它裁剪用户代码。dist/构建产出的最终二进制就是 nupkg 里tools/dotnetwasm内容的来源。进阶把项目改成自己的样子瘦身 BCL给 bclwipe 加条目在bclwipe/下的文本文件里一行写一个成员格式是命名空间.类型::方法(参数)行首可用!做否定、*做前缀通配。重跑 pack 后构建日志里 ilwipe 会打印每个程序集裁剪前后的大小。条目写得多最终程序集就小首屏加载体积直接下降。换一版 Mono 运行时仓库根目录执行UpgradeMono.cmd 解压后的Mono构建目录其他平台用 .ps1 版本。脚本删掉 incoming 和 tools 下的旧文件再拷入新结构。改完 diff 里应只有 dotnet.wasm、dotnet.js 和一批 BCL 程序集有变化若出现新增或删除程序集先和 Mono 侧确认再提交。刷新时区数据src/TimeZoneData/跑一次会重新产出dotnet.timezones.dat它随后被收进 nupkg 当运行时资源。发现时区行为不对时从重新生成这个文件查起。报错了按症状对号入座症状最可能的原因处理动作提示 Node.js was not found没装 Node 或不在 PATH装好 Node.js用node -v验证restore 报 404 或找不到包NuGet.config 只列了 dnceng 公共源网络不通检查外网或在配置里临时加镜像源构建一开始就报 SDK 版本冲突本机 SDK 与 global.json 锁的 3.1.100 不符装 3.1.100或改 global.json 里的版本一个警告就让构建失败TreatWarningsAsErrors开着修掉警告或临时关掉该属性下一步往哪走src/Microsoft.AspNetCore.Components.WebAssembly.Runtime/HowToUpgradeMono.md升级 Mono 的完整流程从下载构建产物到跑 E2E 验证。src/TimeZoneData/README.md时区数据怎么重新生成。仓库 README 说明源码后续并入 ASP.NET Core 仓库使用层面的教程以官方 Blazor 站点为准。加几条 wipe 规则看程序集能瘦多少字节。【免费下载链接】blazorBlazor moved to https://github.com/dotnet/aspnetcore项目地址: https://gitcode.com/gh_mirrors/bl/blazor创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表