Blazor WebAssembly发布异常:仅生成web.config与wwwroot目录
问题分析与解决方案
你的Blazor WASM项目发布后缺少核心的WASM编译产物(如_framework目录),且压缩步骤异常快,本质是项目配置存在关键缺失,导致.NET SDK未按Blazor WASM的规则处理发布流程。
核心问题
你提供的.csproj文件缺少Blazor WASM专属的Sdk声明,当前配置仅按普通.NET项目处理发布,不会生成WASM相关的编译输出。
修复步骤
修正项目文件的Sdk声明
打开你的.csproj,确保文件开头是Blazor WASM专用的Sdk:<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly"> <PropertyGroup> <Nullable>disable</Nullable> <ImplicitUsings>enable</ImplicitUsings> <UseRazorSourceGenerator>false</UseRazorSourceGenerator> <TargetFramework>net6.0</TargetFramework> <!-- 可选:Release模式下启用裁剪,减小产物体积 --> <PublishTrimmed>true</PublishTrimmed> </PropertyGroup> </Project>重新执行发布命令
再次运行发布命令:dotnet publish -c Release -o ~/Desktop/output .验证输出结果
正确发布后,~/Desktop/output/wwwroot目录下会出现_framework文件夹,包含dotnet.wasm、编译后的程序集dll等核心文件,压缩步骤也会正常执行(耗时取决于项目大小)。
原因说明
- 若未指定
Microsoft.NET.Sdk.BlazorWebAssembly,SDK会默认使用普通的Microsoft.NET.Sdk,仅发布静态资源,不会触发Blazor WASM的编译、打包流程。 - 发布日志中的压缩提示快速完成,是因为没有可压缩的WASM产物,该步骤直接跳过。
内容的提问来源于stack exchange,提问作者Sergey Shulik
相关产品推荐
相关产品推荐

