升级.NET SDK 7.0.302后Blazor应用出现RZ9985错误求助
解决Blazor应用更新.NET SDK 7.0.302后的RZ9985错误
问题分析
该错误是由于.NET SDK 7.0.302的组件扫描机制变化,导致同一个泛型组件DataExporterGluGridColumn<T>被重复识别,同时Microsoft.AspNetCore.Components.Key被误关联到同名标签上,旧SDK环境未触发该扫描逻辑所以正常运行。
具体解决步骤
清理项目缓存
- 删除项目根目录下的
bin和obj文件夹 - 重启Visual Studio后重新生成解决方案
- 也可使用命令行执行
dotnet clean再dotnet build,规避VS本地缓存干扰
- 删除项目根目录下的
检查组件引用与注册
- 打开
_Imports.razor,确认TX.Web.Client.UI.Components.DataExporter命名空间没有被重复导入 - 若通过代码注册组件(如
AddComponentModels),检查是否重复注册了DataExporterGluGridColumn<T> - 查看组件类上的特性,确保没有重复添加
[Component]或类似注册特性
- 打开
修正泛型组件标签识别
给DataExporterGluGridColumn<T>添加明确的标签名特性,避免SDK自动生成时出现冲突:[HtmlElement("DataExporterGluGridColumn")] public class DataExporterGluGridColumn<T> : ComponentBase { // 组件原有逻辑 }排查
Key组件误识别问题- 检查所有Blazor模板文件,确保没有错误使用
<Key>标签(正确用法是@key指令,而非组件标签) - 调整
_Imports.razor的导入规则,将@using Microsoft.AspNetCore.Components改为按需导入特定组件,避免SDK扫描到Key组件并关联到同名标签
- 检查所有Blazor模板文件,确保没有错误使用
临时回退SDK验证
若以上方法无效,可在项目文件(.csproj)中指定旧版SDK运行时版本,验证是否为新版本SDK的兼容性问题:<PropertyGroup> <TargetFramework>net7.0</TargetFramework> <RuntimeFrameworkVersion>7.0.5</RuntimeFrameworkVersion> <!-- 替换为之前正常运行的版本 --> </PropertyGroup>
内容的提问来源于stack exchange,提问作者Ghyath Serhal
相关产品推荐
相关产品推荐

