Ошибка команды Add-Migration: "тип не разрешен" (где "тип" - это внутренний класс сущности)

Я уже использовал инфраструктуру сущности с отдельным пакетом миграции (для 3.5 или 4.0, не помню) и с включенными миграциями api (4.3, 5.0).

Но сегодня я создал новый проект (пустой проект MVC4.0), установил последний стабильный EF (4.3) и получил ошибку ниже в команде "pm > Add-Migration initital"

System.Runtime.Serialization.SerializationException: Type is not resolved for member 'System.Data.Entity.Migrations.Design.ToolingFacade+GetPendingMigrationsRunner,EntityFramework    , Version=4.3.1.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
   at System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate)
   at System.Data.Entity.Migrations.Design.ToolingFacade.Run(BaseRunner runner)
   at System.Data.Entity.Migrations.Design.ToolingFacade.GetPendingMigrations()
   at System.Data.Entity.Migrations.AddMigrationCommand.<>c__DisplayClass2.<.ctor>b__0()
   at System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command)

Затем я пытаюсь переключиться на EF5.0 и ошибку все еще здесь, с одной разницей в версии:

System.Runtime.Serialization.SerializationException: Type is not resolved for member 'System.Data.Entity.Migrations.Design.ToolingFacade+GetPendingMigrationsRunner,EntityFramework      , Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.

Это первый раз, когда я получаю эту ошибку.
   "System.Data.Entity.Migrations.Design.ToolingFacade" существует, а подкласс GetPendingMigrationsRunner в нем также существует в указанной сборке EntityFramework.

Кто-нибудь знает, что может вызвать ошибку? Миграция работает нормально для другого проекта MVC4.0, на тех, которые я выбрал стандартный (не пустой) шаблон проекта.

Спасибо!

Ответ 2

У меня такая же ошибка при попытке Enable-Migrations в решении, в котором некоторые проекты были нацелены на .NET 4.5 (следовательно, с использованием EF 5), а некоторые из них были нацелены на .NET 4 (следовательно, используя EF 4.4). Похоже, что он пытался загрузить неправильную версию EF DLL.

Когда я временно не загрузил проекты .NET 4.5 из своего решения, я смог бы успешно использовать Enable-Migrations в других моих проектах.

Ответ 3

Мне удалось избежать этой ошибки, сделав библиотеку тестового модуля в качестве запуска в моем решении вместо самой библиотеки.

Ответ 4

Я столкнулся с этими проблемами, когда на моем компьютере мало места на диске. Очистка некоторых файлов и повторное использование решили проблему для меня.