Blazor WASM项目升级后出现/wwwroot/_content路径资产冲突报错
前置说明
你在源码目录中找不到/wwwroot/_content属于正常情况,该路径是Blazor编译时自动生成的虚拟资产路径,用于合并所有引用的Razor类库的静态资源,不需要提前存在于你的项目源码中。
解决方案
- 清理项目编译缓存
关闭IDE后,删除解决方案根目录下所有项目的bin、obj文件夹,避免增量编译残留的旧版本资产导致冲突。 - 清理NuGet全局缓存
删除当前用户全局NuGet缓存目录下所有microsoft.aspnetcore.components.webassembly相关的包,或者直接执行命令:dotnet nuget locals all --clear - 显式固定依赖版本
检查所有项目的.csproj文件,确保所有WebAssembly相关依赖都显式指定5.0.10版本,不存在隐式版本绑定或者部分依赖未升级的情况,示例配置如下:
<ItemGroup> <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="5.0.10" /> <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="5.0.10" PrivateAssets="all" /> <!-- 其他相关依赖统一指定5.0.10版本 --> </ItemGroup>
同时删除项目中所有VersionOverride相关的旧版本强制配置。
- 清理WebAssembly专属构建缓存
删除当前用户目录下的WebAssembly构建缓存目录:- Windows路径:
%USERPROFILE%\.dotnet\wam\cache - macOS/Linux路径:
~/.dotnet/wam/cache
- Windows路径:
- 检查第三方依赖版本
确认你项目中引用的所有第三方Razor类库,依赖的WebAssembly版本也同步升级到了5.0.10,第三方类库携带的静态资产会被合并到_content路径下,版本不匹配会直接触发冲突。 - 执行非增量编译
在解决方案根目录打开终端,依次执行以下命令完成重新构建:dotnet restore --forcedotnet build --no-incremental
内容的提问来源于stack exchange,提问作者Mike
相关产品推荐
相关产品推荐

