实体框架"update-database"在开发环境中失败,错误"Microsoft.VisualStudio.Data.Tools.Package is not marked as serializ



我最近从运行VS 2015的旧开发环境中迁移,.Net 4.5.1 Windows 8.1 到运行 VS 2017 的新环境,Windows 10 上的 .Net 4.6.2。

以前,我能够毫无问题地从包管理器控制台调用更新数据库脚本。虽然自从搬家以来,我被这个奇怪的错误所震惊。

有没有其他人遇到过它,如果你有修复?

使用"2"参数调用"SetData"的异常:"在程序集'Microsoft.VisualStudio.Data.Tools.Package, version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'中键入'Microsoft.VisualStudio.Data.Tools.Package.Internal.OAProject'未标记为可序列化。 at C:\Workspace\Projects\XXX\main\packages\EntityFramework.6.1.3\tools\EntityFramework.psm1:720 char:5

+ $domain。SetData('startUpProject', $startUpProject) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + 类别信息:未指定:(:) [],方法调用异常 + 完全限定错误 ID:序列化异常 System.NullReferenceException:对象引用未设置为对象的实例。 at System.Data.Entity.Migrations.Extensions.ProjectExtensions.GetProjectTypes(Project project, Int32 shellVersion) at System.Data.Entity.Migrations.Extensions.ProjectExtensions.IsWebProject(Project project) at System.Data.Entity.Migrations.MigrationsDomainCommand.GetFacade(String configurationTypeName, Boolean useContextWorkingDirectory) at System.Data.Entity.Migrations.UpdateDatabaseCommand.<>c__DisplayClass2.<.ctor>b__0() at System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command) 对象引用未设置为对象的实例。

我看到@lincolnzocateli在这里提到了这个问题 https://github.com/aspnet/EntityFramework/issues/7031 然后在这里 https://github.com/aspnet/EntityFramework6/issues/156 但解决方案相当模糊。

讨厌回答我自己的问题...

简单的解决方法似乎是您需要在VS 2017上的打包管理器中指定启动项目。

所以而不是运行这段代码

update-database

您需要运行以下代码

update-database -StartupProject "XXXXX"

相关内容

最新更新