Ошибка обновления базы данных Entity Framework в среде разработки с ошибкой Microsoft.VisualStudio.Data.Tools.Package не помечен как сериализуемый

Недавно я перешел из своей старой среды разработки с VS 2015, .Net 4.5.1 в Windows 8.1 в новую среду с VS 2017, .Net 4.6.2 в Windows 10.

Раньше я мог без проблем вызывать update-database -script из консоли диспетчера пакетов. Хотя с момента переезда меня поразила эта странная ошибка.

Кто-нибудь еще сталкивался с этим, и если у вас есть исправление?

Исключение, вызывающее «SetData» с аргументом (-ами) «2»: «Введите «Microsoft.VisualStudio.Data.Tools.Package.Internal.OAProject» в сборке «Microsoft.VisualStudio.Data.Tools.Package, версия = 15.1.0.0, Культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a' не помечен как сериализуемый." В C:\Workspace\Projects\XXX\main\packages\EntityFramework.6.1.3\tools\EntityFramework.psm1:720 char:5

+ $domain.SetData('startUpProject', $startUpProject) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : SerializationException System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта. в System.Data.Entity.Migrations.Extensions.ProjectExtensions.GetProjectTypes(проект проекта, Int32 shellVersion) в System.Data.Entity.Migrations.Extensions.ProjectExtensions.IsWebProject(проект проекта) в System.Data.Entity.Migrations.MigrationsDomainCommand. GetFacade(String configurationTypeName, Boolean useContextWorkingDirectory) в System.Data.Entity.Migrations.UpdateDatabaseCommand.‹>c__DisplayClass2.‹.ctor>b__0() в System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(команда действия) Ссылка на объект не задана к экземпляру объекта.

Я вижу, что @lincolnzocateli упоминает об этой проблеме здесь https://github.com/aspnet/EntityFramework/issues/7031, а затем здесь https://github.com/aspnet/EntityFramework6/issues/156, но решение довольно расплывчато.


person FryHard    schedule 15.06.2017    source источник


Ответы (1)


Ненавижу отвечать на свой вопрос...

Кажется, простое исправление заключается в том, что вам нужно указать стартовый проект в пакетном менеджере на VS 2017.

Поэтому вместо запуска этого кода

update-database

Вам нужно запустить следующий код

update-database -StartupProject "XXXXX"
person FryHard    schedule 15.06.2017
comment
Спасибо, это сводило меня с ума! - person mason81; 10.10.2017