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

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

Exception calling "LoadFrom" with "1" argument(s): "Nelze načíst soubor nebo sestavení file:///D:\ Users\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." At 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)) + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : DotNetMethodException

You cannot call a method on a null-valued expression. At 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

Exception calling "CreateInstanceFrom" with "8" argument(s): "Typ System.Data.Entity.Migrations.En ableMigrationsCommand ze sestavení EntityFramework.PowerShell, Version=4.3.1.0, Culture=neutral, P ublicKeyToken=b77a5c561934e089 nelze načíst." At 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

 Ladislav Mrnka13 июн. 2012 г., 12:09
Что вы видите в packages.config и в каталоге Packages?
 Rudolf Dvoracek13 июн. 2012 г., 09:28
Я использую версию 4.3.1. Я также попытался удалить Entity Framework с помощью NuGet и установить его снова. Ничего не изменилось. Команда Enable-Migrations все еще пытается загрузить несуществующую сборку. Стоит ли пытаться установить последнюю предварительную версию?
 Rudolf Dvoracek13 июн. 2012 г., 17:13
У меня есть только эти подкаталоги в моем каталоге пакетов 13.06.2012 09:33 & lt; DIR & gt; , 13.06.2012 09:33 & lt; DIR & gt; .. 18.05.2012 12:16 & lt; DIR & gt; Common.Logging.2.0.0 13.06.2012 09:33 & lt; DIR & gt; EntityFramework.4.3.1 20.01.2012 09:33 & lt; DIR & gt; Lextm.SharpSnmpLib.7.0 10.05.2012 15:41 & lt; DIR & gt; Lextm.SharpSnmpLib.7.0.0.2 18.05.2012 12:03 & lt; DIR & gt; log4net.2.0.0 26.03.2012 13:55 & lt; DIR & gt; MvvmLight.3.1.1 12.06.2012 16:54 437 repositories.config 12.04.2012 11:14 & lt; DIR & gt; SilverlightToolkitWP.4.2011.12.14
 Ladislav Mrnka12 июн. 2012 г., 20:27
Если вы хотите получить ответ здесь, избегайте локализованных версий .NET Framework - вопросы с информацией на местном языке обычно закрываются как слишком локализованные. Ваше сообщение об ошибке содержит некоторую противоречивую информацию - оно пытается загрузить расширение EF 4.3.1 PowerShell из каталога EF 5.0 RC. Так какую версию вы используете?
 Rudolf Dvoracek13 июн. 2012 г., 17:09
Файл packages.config: & lt;? xml version = & quot; 1.0 " Кодирование = & Quot; UTF-8 & Quot;? & GT; & Л; пакеты & GT; & lt; package id = & quot; EntityFramework & quot; версия = & Quot; 4.3.1 & Quot; / & GT; & lt; package id = & quot; Lextm.SharpSnmpLib & quot; версия = & Quot; 7.0.0.2 & Quot; / & GT; & lt; идентификатор пакета = & quot; log4net & quot; версия = & Quot; 2.0.0 & Quot; / & GT; & Lt; & / пакеты GT;

Ответы на вопрос(6)

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

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

 Rudolf Dvoracek05 мар. 2013 г., 15:57
Кирстен Я считаю, что вы можете использовать шаги, описанные в статье наdocs.nuget.org/docs/workflows/…, Это может помочь вам избежать совместного использования разных пакетов nuget в разных пользовательских средах.

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

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

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

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

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

которая была открыта в Visual Studio 2017. Вот как я ее решил:

Manually remove Entity Framework from Tools -> NuGet Package Manager -> Manage NuGet Packages From Solution Search for Entity Framework. Unfortunately, there are dependencies. So forcing to remove only Entity Framework doesn't solve the problem at all. So whatever the dependencies are, manually remove it from the steps above. Lastly install again Entity Framework and whatever dependencies that you might have removed. Upon completing this, I didn't restart my Visual Studio, upon typing enable-migrations, everything worked fine already.

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

Uninstall-Package EntityFramework -Force

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

Install-Package EntityFramework

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

Решение Вопроса

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

I uninstalled Entity framework using NuGet package manager. I manually cleared subdirectories started with "Entity" in packages directory. I installed Entity Framework 4.3.1 again

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

 16 янв. 2013 г., 02:11
Недавно я столкнулся с этой проблемой в одном из моих проектов на EF 5
 24 мар. 2016 г., 10:21
Шаг 2 действительно важен ... Я пробовал без шага 2, но ничего не изменилось. Я правильно повторил все шаги и теперь все работает
 27 мая 2013 г., 00:08
Это случилось снова после того, как я установил EF6, а затем вернулся. Ваше исправление снова сработало.
 Rudolf Dvoracek17 янв. 2013 г., 14:41
Вы @kirsten g решили это аналогичным образом?
 17 янв. 2013 г., 19:01
Как-то так получалось, из того, что я помню

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

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

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

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

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

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

 08 февр. 2013 г., 16:17

Ваш ответ на вопрос