将 ASP.NET MVC4 与 EF4.3 一起使用
Enable-Migrations
从 PM 控制台运行
System.Management.Automation.RuntimeException:项目“MyProj”构建失败。项目“MyProj”未能构建。
项目构建(control-shift-B)
有什么方法可以获取有关此错误的更多详细信息以进行诊断?
将 ASP.NET MVC4 与 EF4.3 一起使用
Enable-Migrations
从 PM 控制台运行
System.Management.Automation.RuntimeException:项目“MyProj”构建失败。项目“MyProj”未能构建。
项目构建(control-shift-B)
有什么方法可以获取有关此错误的更多详细信息以进行诊断?
如果您正在构建 64 位应用程序,也会发生这种情况。至少在构建迁移时暂时切换到“任何 CPU”,问题可能会消失。不过,这只是可能导致该错误的一件事。
从包管理器控制台执行“Enable-Migrations”需要对特定 DbContext 的引用。例如
PM> Enable-Migrations -ContextTypeName myMvcApp.Web.Infrastructure.ContextDb
您不需要安装第 3 方程序集或除 EntityFramework 4.3+ 以外的任何其他程序集(上面的命令适用于 EF 5.0。这不是 EF 的一个有据可查但必不可少的功能。
原来我之前在一个没有 dbContext 的项目上运行过这个。这创建了一个迁移配置类,上面写着“填写类的名称”,但未能构建。
这导致我的一个项目无法编译。
删除配置类解决了我的问题。
让我们清楚一点。这个错误是一个令人困惑的错误,因为该消息表明该项目不会构建,而它显然可以在 Visual Studio 中编译。
在重构 ApplicationDbContext 和其他安全类的命名空间以匹配来自
namespace {projectname}.Models
到
namespace {projectname}.Models.Account
还原此命名空间重构解决了该问题。
有时,很少,ReSharper 不是您的朋友。
就我而言,我的项目中有错误。我已清除项目中的所有其他错误。然后它运作良好。
就我而言,Visual Studio 输出窗口中有一条更有意义的消息。
PosmasterDBContext'不包含'Products'的定义,并且找不到接受'PosmasterDBContext'类型的第一个参数的扩展方法'Products'(您是否缺少 using 指令或程序集引用?)
我马上就知道在我的代码中的某个地方,我将Products更改为Product
一旦我将其恢复为Products,错误就消失了。