DevExpress XAF Blazor报表设置CollectionDataSource时找不到5.0.0.0版TypeConverter程序集错误
问题根因
- 从.NET 5开始,
System.ComponentModel.TypeConverter已经被整合进.NET基础运行时库,不再作为独立NuGet包分发,官方公开的独立NuGet包最高版本仅为4.3.0,仅适用于.NET Core 3.x及更早版本。 - 你当前使用的DevExpress XAF版本存在依赖兼容问题:该版本的报表模块代码仍在引用版本号为5.0.0.0的
System.ComponentModel.TypeConverter程序集签名,运行时无法找到对应独立包,因此触发报错。 - 从调用栈可以确认,错误是在XAF类型信息系统扫描业务类属性、为报表构造字段列表的过程中触发,属于典型的组件版本兼容问题。
解决方案
方案1:升级DevExpress组件版本(推荐)
该问题是DevExpress已知的旧版本兼容Bug,官方已在后续适配.NET 5+的版本中修复了该依赖引用问题,直接将DevExpress XAF升级到与你当前项目.NET版本匹配的正式版即可彻底解决。
方案2:添加程序集绑定重定向
如果暂时无法升级DevExpress版本,可在项目根目录的配置文件中添加绑定重定向规则,强制将所有版本的System.ComponentModel.TypeConverter定向到可用版本:
- 通过NuGet包管理器安装
System.ComponentModel.TypeConverter4.3.0版本到你的项目中 - 在项目的
app.config文件中添加如下配置:
<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.ComponentModel.TypeConverter" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="4.3.0.0" /> </dependentAssembly> </assemblyBinding> </runtime>
方案3:针对VS设计器报错的特殊处理
如果错误仅在Visual Studio的本地报表设计器中触发,运行时无报错,是因为VS设计器使用的.NET Framework运行时与项目的.NET 5+运行时不匹配,可改用DevExpress Blazor端的在线Web报表设计器,避免本地设计器的兼容问题。
内容的提问来源于stack exchange,提问作者M.Bouabdallah
相关产品推荐
相关产品推荐

