You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将Blazor WebAssembly发布到Azure App Service时遇NETSDK1147错误求助

Blazor WebAssembly发布到Azure App Service失败问题排查与解决

问题描述

发布Blazor WebAssembly项目到Azure App Service时出现两类异常:

  1. 勾选使用AOT和发布时删除目标位置的额外文件选项时,触发报错:

"C:\Program Files\dotnet\sdk\7.0.402\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.ImportWorkloads.targets(38,5): Error NETSDK1147: To build this project, the following workloads must be installed: wasm-tools
To install these workloads, run the following command: dotnet workload restore"

  1. 取消AOT选项后,除上述错误外新增报错:

obj\publish\browser-wasm\project.assets.json' not found. Run a NuGet package restore to generate this file.

已执行的无效操作:

  • NuGet更新项目至最新版本
  • 使用Visual Studio 17.7.5
  • 发布配置为:Release、.NET 7.0、独立部署、browser-wasm
  • 命令行执行dotnet workload restore显示成功
  • 删除bin/obj文件夹、重新添加发布配置文件、重新生成解决方案
  • 执行dotnet restore返回**"所有项目均已为还原完成更新。"**(原英文:All projects are up-to-date for restore.)

注:同解决方案下的API项目可正常发布,且该Blazor项目此前能正常发布。

解决方案

1. 强制重装wasm-tools workload

dotnet workload restore可能未彻底修复安装异常,执行以下命令强制清理并重装对应版本的workload:

dotnet workload uninstall wasm-tools
dotnet workload install wasm-tools --from-rollback-file https://dotnetcli.blob.core.windows.net/dotnet/7.0.402/rollback.json

(需确保rollback文件URL与本地SDK 7.0.402版本匹配)

2. 清理全局NuGet缓存并强制还原

project.assets.json缺失大概率是NuGet缓存异常导致,执行:

dotnet nuget locals all --clear
dotnet restore --force

3. 检查Visual Studio组件安装

打开Visual Studio安装器,确认已安装**.NET WebAssembly Build Tools**组件:

  • 启动Visual Studio Installer → 点击「修改」→ 切换到「单个组件」→ 搜索".NET WebAssembly Build Tools" → 勾选后完成安装

4. 手动指定Wasm工具路径(临时 workaround)

在Blazor项目的.csproj文件中添加配置,强制绑定本地已安装的Wasm工具路径:

<PropertyGroup>
  <WasmToolsInstallPath>C:\Program Files\dotnet\packs\Microsoft.NET.Runtime.WebAssembly.Sdk\7.0.12\Sdk</WasmToolsInstallPath>
</PropertyGroup>

(路径需对应本地C:\Program Files\dotnet\packs下实际存在的Microsoft.NET.Runtime.WebAssembly.Sdk版本)

5. 验证Azure App Service运行时配置

登录Azure门户,确认目标App Service的运行时与项目匹配:

  • 进入目标App Service → 「设置」→「配置」→「常规设置」→ 堆栈选择**.NET 7**,运行时版本选择ASP.NET V7

6. 尝试命令行直接发布

跳过Visual Studio的发布流程,用命令行发布排查IDE配置问题:

dotnet publish -c Release -f net7.0 -r browser-wasm --self-contained true /p:BlazorEnableAOT=true

若命令行发布成功,可重新创建Visual Studio发布配置文件。

内容的提问来源于stack exchange,提问作者purello

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 22:03:15