Исключение, возникающее, когда я пытаюсь включить миграции в 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
Но я не работал с моей стороны. Поэтому я догадался, что мне пришлось вручную удалить его, включая его зависимости, без использования силы и снова установить его на работу. Но рад, что это произошло.