为啥 MVC 脚手架会失败? (在 VS2012 和 VS2013 中有不同的错误)

Posted

技术标签:

【中文标题】为啥 MVC 脚手架会失败? (在 VS2012 和 VS2013 中有不同的错误)【英文标题】:Why is MVC scaffolding failing? (w/ different errors in VS2012 vs VS2013)为什么 MVC 脚手架会失败? (在 VS2012 和 VS2013 中有不同的错误) 【发布时间】:2015-06-08 00:15:44 【问题描述】:

我正在将大量现有的业务对象代码库及其关联的数据访问层利用到 ASP.NET MVC Web 应用程序中。为业务对象搭建基架视图时,搭建引擎在 Visual Studio 2013 中失败并显示以下消息:

错误

运行所选代码生成器时出错: '方法或操作没有实现。'

在 Visual Studio 2012 中,错误是:

错误

运行所选代码生成器时出错: 'Extender Provider 未能返回此对象的 Extender。'

已经试过了:

将默认模板复制到 CodeTemplates 文件夹:我的自定义模板在我直接添加到项目中的一些 POCO 上工作得很好,但在我想使用的真实对象上却失败了。 将 CodeTemplates 包装在 try/catch 块中,并将 catch 设置为写入跟踪:我尝试了这种方法,但从未得到任何跟踪结果。我怀疑错误是在模板本身开始处理之前。

值得注意的是,每个业务对象都分为三个部分类。 “添加视图”窗口中的“模型类”选择列表显示了每个类名称中的三个,但是为任何业务对象类选择三个中的任何一个都会出现相同的错误。

我如何找出导致实际错误的原因并纠正它或找到解决方法?

【问题讨论】:

你能在堆栈跟踪中找到抛出 VS2013 异常的方法或操作吗? 不,这是问题的很大一部分。我得到的只是带有错误的消息框。输出窗格中甚至没有显示任何内容。 你能分享一些你正在使用脚手架的代码吗? 这会很困难,因为代码在一个封闭的网络上——我更感兴趣的是从脚手架系统获得任何反馈,告诉我哪里出了问题。跨度> 当我的模型继承了在另一个程序集中定义的类型时,我遇到了同样的问题。如果我直接指定外部类型或删除继承,我可以使用生成器,但每次我尝试维护程序集之间的继承关系时,我都会得到“方法或操作未实现”(这在 VS 2015 中)。烦人。 【参考方案1】:

检查您使用的是哪个版本的 EntityFramework,如果是 > 6.1.0 将其转为 6.1.0。或更低。 我不知道为什么会这样,但是当我在项目中更改 EntityFramework 版本时,脚手架开始正常工作。

【讨论】:

【参考方案2】:

根据我的经验,大多数错误要么是代码尚未编译(这有点奇怪,VS 有时看不到尚未编译的类),要么可能是使用了不同的命名空间,

希望对你有帮助

【讨论】:

以上是关于为啥 MVC 脚手架会失败? (在 VS2012 和 VS2013 中有不同的错误)的主要内容,如果未能解决你的问题,请参考以下文章

在 Mvc 5、EF6、Visual Studio 2013 中使用存储库的脚手架控制器

如何在 VS2017 上将 ASP.MVC 脚手架从 Bootstrap 3 更新到 Bootstrap 4?

为啥我的vs2015总是安装失败呢?

在 Visual Studio 2015 for ASP.NET Core MVC 中查看脚手架失败

为啥将ATL项目升级到VS2015.1后regsvr32会失败?

为啥我输入的vs2012密钥会无效呢?