ASP.NET Core添加控制器时出现“Method not found”错误求助
问题分析与解决方法
嘿,我来帮你拆解这个问题!
错误含义
这个错误本质是EF Core相关NuGet包版本不兼容导致的:你项目里的Microsoft.EntityFrameworkCore.Design包,和其他EF Core组件(包括你用的Pomelo包)版本不一致,使得代码生成工具找不到正确的DbContextOperations构造函数——不同版本的Design包会调整这个类的构造函数签名,版本不匹配就会触发“方法未找到”的异常。
具体解决步骤
作为ASP.NET新手,跟着下面的步骤一步步来就行:
检查并统一EF相关包版本
- 打开你的项目,右键点击项目→选择“管理NuGet程序包”
- 在“已安装”标签下,找到以下几个包,确认它们的版本号完全相同:
Microsoft.EntityFrameworkCoreMicrosoft.EntityFrameworkCore.DesignMicrosoft.EntityFrameworkCore.ToolsPomelo.EntityFrameworkCore.MySql(如果你用的是MySQL数据库)
- 如果版本不一样,把所有包都升级/降级到同一个版本(比如都用3.1.20,这个版本和VS2017的兼容性很好)
修复后清理重建项目
- 右键解决方案→选择“清理解决方案”
- 再右键解决方案→选择“重建解决方案”
- 之后再尝试添加“带视图的MVC控制器”,应该就能正常生成代码了
额外提示
因为你用的是VS2017,它对.NET Core的最高支持版本是3.1,所以尽量选择.NET Core 3.1对应的EF Core和Pomelo版本,不要用5.0及以上的版本(这些需要VS2019+支持)。
内容的提问来源于stack exchange,提问作者Anne-Katrine
相关产品推荐
相关产品推荐

