已弃用包Microsoft.AspNetCore.Mvc.ViewFeatures的替代及版本冲突问题
问题原因与解决办法
为什么会出现版本冲突?
- 你安装的
Microsoft.AspNetCore.Mvc.ViewFeatures2.2.0是老旧且已弃用的包,它会间接依赖2.2.0.0版本的Microsoft.AspNetCore.Mvc.Abstractions。而你项目中引用的FMH.Web.Mvc.UI组件依赖6.0.0.0版本的该程序集,两个版本不兼容,导致构建时出现引用冲突。 - 你没有直接引用
Microsoft.AspNetCore.Mvc.Abstractions,但第三方组件或你安装的ViewFeatures包会自动引入它作为依赖项,这就是间接依赖引发的问题。
解决步骤
卸载弃用的老包
从项目中移除Microsoft.AspNetCore.Mvc.ViewFeatures2.2.0的引用,这个包在ASP.NET Core 3.0之后已被合并到共享框架,单独包已被弃用,无需保留。确认项目目标框架
检查类库项目的目标框架是否为.NET 6(或更高兼容版本),因为FMH.Web.Mvc.UI依赖6.0的组件,确保目标框架一致才能避免版本不匹配。按需添加正确依赖
- 如果ViewModel只是单纯使用
System.Collections.Generic.IEnumerable<T>:不需要额外包,直接在代码中引入using System.Collections.Generic;即可,这是.NET基础类库的核心类型,类库项目默认已包含相关引用。 - 如果ViewModel需要用到ASP.NET MVC视图相关特性(比如模型绑定、视图数据扩展等):安装对应.NET 6版本的
Microsoft.AspNetCore.Mvc包(版本号选6.0.x),这个包会自动引入正确版本的Microsoft.AspNetCore.Mvc.Abstractions和ViewFeatures相关组件,与FMH.Web.Mvc.UI的依赖版本对齐,解决冲突。
- 如果ViewModel只是单纯使用
内容的提问来源于stack exchange,提问作者Cliffi
相关产品推荐
相关产品推荐

