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

.NET6 Blazor WASM项目dotnet publish报错:同名键已添加

解决.NET 6 Blazor WASM 发布重复资源报错方案

根因说明

你遇到的是.NET 6 RC预览版本的已知Bug,Blazor WASM发布阶段生成压缩静态资源时,旧版本构建缓存和预览版SDK/包的逻辑缺陷会导致重复资源键冲突。

排查&解决步骤

1. 彻底清理构建缓存

优先删除所有残留的旧构建产物,避免缓存干扰:

  • 手动删除项目根目录、解决方案根目录下所有的bin、obj文件夹,以及之前生成的output发布输出文件夹
  • 若使用Git管理代码,可直接执行git clean -xdf一键清理所有未跟踪的构建缓存文件

2. 统一升级SDK与Nuget包到正式版

你当前使用的SDK、Nuget包均为RC2预览版,该版本本身存在此未修复的问题:

  • 构建服务器和本地环境都卸载.NET 6 RC预览版SDK,安装.NET 6 正式版SDK(6.0.100及以上稳定版本)
  • 把项目中所有Blazor相关Nuget包从6.0.0-rc.2.*预览版升级到6.0.0及以上稳定版,包括:
    • Microsoft.AspNetCore.Components.WebAssembly
    • Microsoft.AspNetCore.Components.WebAssembly.DevServer

3. 临时禁用Blazor内置压缩(备选方案)

如果上述步骤仍未解决,可在项目.csproj文件中添加配置,跳过触发问题的压缩逻辑:

<PropertyGroup>
  <!-- 临时禁用发布时的自动压缩,后续版本稳定后可删除此配置 -->
  <BlazorEnableCompression>false</BlazorEnableCompression>
</PropertyGroup>

后续可选择发布完成后手动对wwwroot下的静态资源做gzip/Brotli压缩,不影响项目功能使用。

4. 排查自定义发布逻辑

检查.csproj文件中是否存在自定义的静态资源复制Target,Blazor默认已经自动处理wwwroot目录资源的发布逻辑,额外添加的重复复制规则也会触发资源冲突,删除重复的自定义复制逻辑即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:24:07