#69341·aspnetcore

Microsoft.AspNetCore.App.Internal.Assets 仅在恢复时存在 .razor 文件时才会被注入 - 标准的 Docker "在复制源码之前进行恢复"模式会默默地发布一个没有 _framework 资源的 Blazor 应用程序 (blazor.web.js → 404)

作者: borgez创建于 2026年9月16日更新于 2026年9月17日
标签area-blazor

**根本原因。** `blazor.web.js`/`blazor.server.js` 不再嵌入到程序集中;它们由隐式包 `Microsoft.AspNetCore.App.Internal.Assets` 提供(请参阅 #65061 和 dotnet/sdk#46165,其中将其设置为条件是有意的)。该隐式 `PackageReference` 仅在项目中已包含 Razor 项 **在评估时** 才添加 — 即在 `dotnet restore` 时。在上面的 Docker 模式中,恢复发生在具有 .csproj 但没有 .razor 文件的树上,因此该包最终不会出现在 `project.assets.json` 中。然后,`dotnet build --no-restore` 保留该包图,静态 Web 资产管道永远不会看到框架资产,并且将生成不包含 `_framework` 路由的发布输出 + `*.staticwebassets.endpoints.json`。

内容来源: dotnet/aspnetcore