Исключение, возникающее, когда я пытаюсь включить миграции в EF 4.3.1

Я использую Entity framework 4.3.1, установленную nuget в моем проекте библиотеки классов .NET. В ситуации, когда я вызываю команду "Enable-Migrations" в консоли PM, я получаю следующее исключение:

Исключение, вызывающее "LoadFrom" с аргументом "1": "Файл Nelze načíst soubor nebo sestaven":///D: \ Пользователи \DvoracekR\Documents\Visual Studio 2010\Projects\WebCameras\packages\EntityFramework.4.3.1\to ols\EntityFramework.PowerShell.Utility.dll nebo jeden z jejich závislých prvků. Systém nemůže nalé zt uvedený soubor. "В D:\Users\DvoracekR\Documents\Visual Studio 2010\Projects\WebCameras\packages\EntityFramework.5. 0.0-rc\tools\EntityFramework.psm1: 393 char: 62 + $utilityAssembly = [System.Reflection.Assembly]:: LoadFrom < < < < ((Соединение-путь $toolsPath Entity Framework.PowerShell.Utility.dll))    + CategoryInfo: NotSpecified: (:) [], MethodInvocationException    + FullyQualifiedErrorId: DotNetMethodException

Вы не можете вызывать метод с нулевым значением. В D:\Users\DvoracekR\Documents\Visual Studio 2010\Projects\WebCameras\packages\EntityFramework.5. 0.0-rc\tools\EntityFramework.psm1: 394 char: 50 + $dispatcher = $utilityAssembly.CreateInstance < < < (    + CategoryInfo: InvalidOperation: (CreateInstance: String) [], RuntimeException    + FullyQualifiedErrorId: InvokeMethodOnNull

Экземпляр, вызывающий" CreateInstanceFrom "с аргументом" 8 ":" Typ System.Data.Entity.Migrations.En Могучие мигрантыКомпьютерная группа ze sestavení EntityFramework.PowerShell, версия = 4.3.1.0, Культура = нейтральная, P ublicKeyToken = b77a5c561934e089 nelze načíst. " В D:\Users\DvoracekR\Documents\Visual Studio 2010\Projects\WebCameras\packages\EntityFramework.5. 0.0-rc\tools\EntityFramework.psm1: 418 char: 31 > + $domain.CreateInstanceFrom < < < (    + CategoryInfo: NotSpecified: (:) [], MethodInvocationException    + FullyQualifiedErrorId: DotNetMethodException

Ответ 1

Я решил проблему, описанную выше.

  • Я удалил инфраструктуру Entity с помощью диспетчера пакетов NuGet.
  • Я вручную очистил подкаталоги, созданные с помощью "Entity" в пакетах каталог.
  • Я снова установил Entity Framework 4.3.1

Теперь миграция включена правильно.

Ответ 2

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


Мое решение было в контроле источника, и я испортил свой локальный проект. Я решил начать с Source Control, поэтому я создал новую папку и проверил код из SVN.

Когда я это сделал, я больше не мог создавать миграции. Я получил ту же ошибку, что и выше. Я попробовал Uninstall-Package EntityFramework, но получил аналогичное сообщение о недостающих файлах/ссылках в EntityFramework.

Я вернулся в свою старую папку и посмотрел в $Project\packages\EntityFramework.6.0.2\ и сравнил ее с моей новой папкой. Не хватило нескольких DLL/Xml файлов, поскольку они не находились в Source Control. Они находились в каталогах \tools\, \lib\net40 и \lib\net45\.

Я просто скопировал эти файлы в свой новый проект, закрыл/вновь открыла Visual Studio и сделала перестроить. После этого все работало нормально.

Ответ 3

Переустановка пакета NuGet не работала для меня. Что было сделано для переноса проекта с сетевого диска на локальный диск. Выполнение сравнения показало, что, кроме каталогов obj и bin, все файлы были бинарно идентичными.

Если я правильно помню, моя последняя попытка в Update-Database была до того, как я переместил проект на сетевой диск.

Ответ 4

Я испытываю эту проблему при совместном проекте с колледжем, отправив ему проект. Когда он отправил его мне, я обнаружил, что возвращенный проект дал мне эту ошибку, когда я попытался добавить миграцию. Я решил проблему путем перезаписи пакета \EntityFramework.5.0.0 из возвращаемого проекта с папкой из моего оригинального проекта.

У меня нет проблемы, если я просто переведу проект на своей машине.

Ответ 5

Эта проблема начиналась со мной при использовании другой виртуальной машины на одной и той же физической машине.

VMWare Fusion по умолчанию использует общий доступ к папке профилей с OS X, что, в свою очередь, создает множество проблем при использовании нескольких виртуальных машин с установленной Visual Studio, практически все приложения, которые я установил, начали вести себя странно. В это время должен был быть звонок.

Проблема была решена путем отключения общего доступа к папкам, что не так очевидно, поскольку у меня не было возможности не распространять папку профиля, а только добавлять/удалять другие папки.

Надеюсь, моя глупость помогла кому-то еще:)

Ответ 6

У меня такая же проблема с проектами Visual Studio 2015, которые были открыты на Visual Studio 2017. Вот как я ее решил:

  • Вручную удалить Entity Framework из Инструменты Диспетчер пакетов NuGet Управление пакетами NuGet из решения
  • Найдите Entity Framework.
  • К сожалению, существуют зависимости. Так что принудительное удаление только Entity Framework не решит проблему вообще. Так что независимо от зависимостей, вручную удалите его из приведенных выше шагов.
  • Вновь установите снова Entity Framework и любые зависимости, которые вы, возможно, удалили. По завершении этого, я не перезапустил свою Visual Studio, набрав enable-migrations, все уже работало нормально.

Чтобы поделиться своим опытом, я пробовал этот шаг:

Uninstall-Package EntityFramework -Force

Затем установите его для каждого проекта:

Install-Package EntityFramework

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