Enable-Migrations命令已更改

时间:2014-10-16 19:06:51

标签: c# .net asp.net-mvc entity-framework asp.net-mvc-4

谷歌搜索这个问题,我已经尝试了所有问题的答案,没有任何变化。

我正在为我的公司建立一个小型MVC电子商务应用程序。它分为两个项目:Domain和WebUI。 WebUI显然依赖于Domain,我的构建顺序反映了这一点。我检查了两个项目的目标框架,它们匹配(4.5),我添加了EF 5.0。

在构建基本产品演示文稿/目录和购物车代码之后,我想实现用户,以便我可以构建订单/商店功能。

到目前为止,一切正常。

我运行"启用 - 迁移"所以我可以编写自己的会员/用户代码并使用我设置的数据库,以便将来的上下文更改以我的数据库而不是defaultOCnnection为目标。

启用迁移已插入“迁移”文件夹和“配置”类。没有错误产生。 "检查上下文是否定位并且是否存在数据库...为项目* .WebUI启用代码优先迁移。"

当我在运行Enable-Migrations后尝试构建时,我收到了一些错误,指出类型或命名空间' Mvc'名称空间中不存在System.Web'在域项目(我的产品类)和一个错误'无法解析参考。无法找到程序集" System.Web.Mvc,版本4.0.0.0 ...."检查以确保磁盘上存在组件..."当然,WebUI无法找到Domain.dll的错误(因为Domain.dll无法构建)。

运行enable-Migrations是如何导致此的?

我该如何解决这个问题? dll位于磁盘上,属性所在的位置,参考包含,Local Copy = true ....

我真的不知所措......

1 个答案:

答案 0 :(得分:0)

奇怪的是,我两天前在我们的一台机器上遇到了这个错误,唯一的区别是我们正在运行EF 6.1.1。我使用ReSharper检查我们的域项目中没有任何东西使用System.Web.Mvc并删除了引用。无论如何,我无法弄清楚它是如何到达那里的。

我们在此代码库中运行了几年前的启用迁移,因此我们的问题似乎不太可能是由此造成的。

对于您来说,在您的域代码中引用System.Web.Mvc确实应该没有太多理由,所以也许您可以考虑将依赖于该DLL的任何代码移动到您的Web项目中,如果它不能被彻底删除,那么删除DLL引用本身?

我知道这并不能解释为什么它不起作用。这可能与app.config文件中的程序集重定向有关。也许它会重定向到v5,哪个不存在?