执行enable-migrations时,报“使用“2”个参数调用“SetData”时发生异常:“程序集“Microsoft.VisualStudio.TeamArchitect.ModelingProject,..”

今天打开MVC项目(Code-First),打算手动更新数据库,所以直接在"程序包管理控制台"中执行如下命:

enable-migrations -contexttypename BJYLOnlineServ.Areas.Enterprise.DAL.EnterpriseContext  -MigrationsDirectory Migrations\Enterprise;

控制台直接给了我一个这样的错误,我奇怪了,之前还好好的啊,怎么回事了。错误:

PM> enable-migrations -contexttypename BJYLOnlineServ.Areas.Enterprise.DAL.EnterpriseContext  -MigrationsDirectory Migrations\Enterprise
使用“2”个参数调用“SetData”时发生异常:“程序集“Microsoft.VisualStudio.TeamArchitect.ModelingProject, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”中的类型“Microsoft.VisualStudio.TeamArchitect.ModelingProject.ModelProjectAutomationObject”未标记为可序列化。”
所在位置 D:\docuemtn-xf\03Work\onlineservice_Curr\trunk\packages\EntityFramework.6.1.3\tools\EntityFramework.psm1:720 字符: 20
+     $domain.SetData <<<< ('startUpProject', $startUpProject)
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException
 
System.NullReferenceException: 未将对象引用设置到对象的实例。
   在 System.Data.Entity.Migrations.Extensions.ProjectExtensions.GetProjectTypes(Project project, Int32 shellVersion)
   在 System.Data.Entity.Migrations.Extensions.ProjectExtensions.IsWebProject(Project project)
   在 System.Data.Entity.Migrations.MigrationsDomainCommand.GetFacade(String configurationTypeName, Boolean useContextWorkingDirectory)
   在 System.Data.Entity.Migrations.EnableMigrationsCommand.FindContextToEnable(String contextTypeName)
   在 System.Data.Entity.Migrations.EnableMigrationsCommand.<>c__DisplayClass2.<.ctor>b__0()
   在 System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command)
未将对象引用设置到对象的实例。


于是啊,我就找原因啊,我找啊找,还真找到了。

原来:是因为我之前设置了另一个项目为启动项目,而非 命令中的 BJYLOnlineServ 这个项目,所以就报出这个错误了。。。流汉啊。。。,以后一定要注意了啊!

 

所以就记下来,以方便自己查阅,也给可能碰到这种问题的大家,提供一个解决方法,呵呵!

 

posted @ 2015-04-30 13:15  迷途的骆驼  阅读(2061)  评论(2编辑  收藏  举报