Blazor web asset has conflicting web root 无代码修改突发报错求助
报错诱因
- Visual Studio非正常关闭导致的构建缓存损坏:未修改代码的前提下突发报错,大概率是上次关闭IDE时未正常清理bin、obj目录下的Blazor静态资源映射缓存,缓存中存在重复的资源路径映射项,触发冲突校验。
- 目录权限或路径变动:若项目存放在同步盘目录、系统受保护目录下,间隔期间同步工具、系统安全软件修改了项目目录读写权限,或是路径被重命名、移动,都会导致Blazor资源生成时读取到错误的WebRoot路径。
- .NET SDK静默更新兼容问题:若开启了.NET SDK自动更新,后台静默安装的小版本补丁与旧版本生成的缓存规则不匹配,也会触发该冲突。
解决方案
- 完全关闭Visual Studio后,手动删除项目根目录下的
bin、obj文件夹;如果是前后端分离的Blazor WASM项目,需要同时删除Server端、Client端两个项目下的bin、obj目录。 - 按下Win+R输入
%temp%,清空当前用户临时目录下的所有文件,跳过被占用的文件即可。 - 重新打开解决方案,右键点击解决方案节点选择
还原NuGet包,完成后右键选择重新生成解决方案,禁止使用增量生成。 - 若上述操作无效,检查项目存放的全路径是否存在中文、空格、特殊字符,将项目移动到纯英文无特殊符号的目录下后重新生成即可。
- 仍有问题可通过固定SDK版本解决,在项目根目录新建
global.json文件,锁定之前项目正常运行时使用的.NET SDK版本,配置示例如下:
{ "sdk": { "version": "6.0.408", "rollForward": "disable" } }
将上述version字段替换为你本地之前正常运行的SDK版本号即可,可通过执行dotnet --list-sdks命令查看本地安装的所有SDK版本。
内容的提问来源于stack exchange,提问作者Krellex
相关产品推荐
相关产品推荐

