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

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

Исключение, вызывающее «LoadFrom» с аргументом (-ами) «1»: «Нельзя добавить содержимое файла:///D:\ Users\DvoracekR\Documents\Visual Studio 2010\Projects\WebCameras\packages\EntityFramework.4.3.1\ в ols\EntityFramework.PowerShell.Utility.dll, который не содержит указаний. В папке 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 ‹‹‹‹ ((Join-Path $toolsPath Entity Framework.PowerShell.Utility.dll)) + Информация о категории: 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»: «Введите System.Data.Entity.Migrations.EnableMigrationsCommand, установив EntityFramework.PowerShell, Version=4.3.1.0, Culture=neutral, PublicKeyToken=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


person Rudolf Dvoracek    schedule 12.06.2012    source источник
comment
Если вы хотите получить ответ здесь, избегайте локализованных версий .NET framework - вопросы с информацией на местном языке обычно закрываются как слишком локализованные. Ваше сообщение об ошибке содержит некоторую противоречивую информацию — оно пытается загрузить расширение EF 4.3.1 PowerShell из каталога EF 5.0 RC. Так какую версию вы используете?   -  person Ladislav Mrnka    schedule 12.06.2012
comment
Я использую версию 4.3.1. Я также попытался удалить Entity Framework с помощью NuGet и установить его снова. Ничего не изменилось. Команда Enable-Migrations все еще пытается загрузить несуществующую сборку. Должен ли я попытаться установить последнюю предварительную версию?   -  person Rudolf Dvoracek    schedule 13.06.2012
comment
Что вы видите в packages.config и в каталоге Packages?   -  person Ladislav Mrnka    schedule 13.06.2012
comment
Файл packages.config: ‹?xml version=1.0 encoding=utf-8?› ‹packages› ‹package id=EntityFramework version=4.3.1 /› ‹package id=Lextm.SharpSnmpLib version=7.0.0.2 /› ‹package id = версия log4net = 2.0.0 /› ‹/packages›   -  person Rudolf Dvoracek    schedule 13.06.2012
comment
У меня в каталоге пакетов есть только эти подкаталоги 13.06.2012 09:33 ‹DIR› . ‹DIR› Lextm.SharpSnmpLib.7.0 10.05.2012 15:41 ‹DIR› Lextm.SharpSnmpLib.7.0.0.2 18.05.2012 12:03 ‹DIR› log4net.2.0.0 26.03.2012 13:55 ‹DIR› MvvmLight.3.1.1.1. .2012 16:54 437 repositories.config 12.04.2012 11:14 ‹DIR› SilverlightToolkitWP.4.2011.12.14   -  person Rudolf Dvoracek    schedule 13.06.2012


Ответы (6)


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

  1. Я удалил платформу Entity с помощью диспетчера пакетов NuGet.
  2. Я вручную очистил подкаталоги, начинающиеся с «Entity» в каталоге пакетов.
  3. Я снова установил Entity Framework 4.3.1

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

person Rudolf Dvoracek    schedule 14.06.2012
comment
Недавно я столкнулся с этой проблемой в одном из моих проектов на EF 5. - person Kirsten Greed; 16.01.2013
comment
Это произошло снова после того, как я установил EF6, а затем вернулся. Ваше исправление снова сработало. - person Kirsten Greed; 27.05.2013
comment
Шаг 2 действительно важен... Я пробовал без шага 2, но ничего не изменилось. Я правильно повторил все шаги и теперь все работает - person Ciccio; 24.03.2016
comment
это не работает для меня. Первый шаг фактически автоматически удаляет все пакеты, связанные с EF (я проверил это, самостоятельно просматривая папку пакетов). Так что шаг 2 в этом случае вообще не имеет смысла. Я даже проверил все изменения (после удаления EF) на сервере управления исходным кодом. Перезапустите Visual Studio и начните новую установку EF, ее все еще не удалось установить, EntityFramework.PowerShell.Utility.dll все еще отсутствовал/не мог быть загружен, как указано в жалобе. (в моем случае версия EF 6.1.3) - person King King; 18.04.2017

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


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

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

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

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

person L_7337    schedule 02.04.2014

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

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

person user247702    schedule 08.02.2013

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

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

person Kirsten Greed    schedule 20.01.2013
comment
Кирстен Я считаю, что вы можете использовать шаги, описанные в статье в docs .nuget.org/docs/workflows/. Это может помочь вам избежать совместного использования пакетов nuget в разных пользовательских средах. - person Rudolf Dvoracek; 05.03.2013

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

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

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

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

person Andreas Kristiansen    schedule 16.07.2015

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

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

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

Uninstall-Package EntityFramework-Force

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

Установка EntityFramework

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

person Willy David Jr    schedule 11.06.2017