Проблема Установка Entity Framework 7 RC1

Я пытаюсь установить EF7 rc1 в существующий проект:

PM > Install-Package EntityFramework.MicrosoftSqlServer -Pre

но я получаю следующую ошибку:

Ошибка установки. Откат назад... Пакет "Microsoft.Extensions.Logging 1.0.0-rc1-final" не существует в проекте "XYZ"

И в конце трассы я получаю это другое сообщение:

Install-Package: Не удалось добавить ссылку на "System.Collections.Concurrent". Убедитесь, что он находится в глобальном кэше сборок.

Я googled и вижу, что параллельная коллекция была в dotnet некоторое время, но у меня нет такой сборки в моей dev-блоке.

Update:

После запроса gac с gacutil я понимаю, что действительно присутствует сборка:

Глобальный кэш сборок содержит следующие сборки:

System.Collections.Concurrent, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a, processorArchitecture = MSIL

Ответы

Ответ 1

После получения этой ошибки я смог установить EF7 RC1 в свой проект, удалив ссылки на мои другие проекты, после чего я смог успешно установить EF7 RC1 в проект, где мне это нужно, а затем добавил ссылки назад, после чего решение начинает компилироваться (и по крайней мере некоторые базовые функции EF начинают работать). Вероятно, сбой nuget/dnu.

Ответ 2

Поскольку у меня не было сборки System.Collections.Concurrent в GAC, я установил System.Collections.Concurrent пакет NuGet:

Install-Package System.Collections.Concurrent

Затем вручную добавлена ​​ссылка на packages\System.Collections.Concurrent.4.0.10\lib\dotnet\System.Collections.Concurrent.dll (поскольку папка net46 была пуста).

После этого установка EntityFramework.MicrosoftSqlServer завершена без ошибок.

Ответ 3

В моем случае мне пришлось удалить пакеты xUnit nuget. После удаления этих ссылок Microsoft.Extensions.Logging 1.0.0-rc1-final устанавливается правильно. После этого я добавил xUnit обратно без каких-либо проблем.

Ответ 4

Если вы получаете это сейчас (как в апреле 2016 года), эти ответы могут быть устаревшими. Я устанавливаю EF7 в первый раз, но я нашел следующее:

  • Я установил EntityFramework.SqlServer, сначала подумав, что это самый пакет "верхнего уровня", который мне нужен
  • Я попытался установить EntityFramework.Commands и получил тупую "коллекцию", показанную выше.

Я внимательно посмотрел на версии.

  • SqlServer все еще был бета-версией 8
  • Команды были RC1

Итак, я пошел в "Управление пакетами nuget" для проекта и обновил все, что показано под обновлениями. Я действительно должен был сделать это дважды.

Это привело к тому, что содержимое ядра EF7 до RC1

Затем я смог установить EntityFramework.Commands без проблем.


НО это не то, что вы хотите сделать?

Почему? Поскольку они переименовали пакет EntityFramework.SqlServer в EntityFramework.MicrosoftSqlServer

Итак, вы действительно хотите удалить *.SqlServer и установить *.MicrosoftSqlServer

Это объясняет, почему не было версии RC1.

Ответ 5

Это PITA, но с использованием .Net v4.5.2 мой способ обхода для EntityFramework.Core -pre установлен:

  • Создайте чистую библиотеку классов без установленных NuGets.
  • install-package entityframework.core -pre
  • Скопировать содержимое packages.config, но не включать строку, представляющую EntityFramework.Core
  • Включите строки в packages.config, которые вы устанавливаете.
  • update-package -reinstall -projectName YourProjectNameFromStep4
  • install-package entityframework.core -pre

ПРИМЕЧАНИЕ! Если шаг 5 не удается выполнить, выполните следующие действия:

  • install-package System.Collections.Concurrent -version 4.0.0 -projectName YourProjectNameFromStep4
  • install-package System.Runtime -version 4.0.0 -projectName YourProjectNameFromStep4

Затем их можно удалить после успешной установки с шага 6:

  • uninstall-package System.Collections.Concurrent -projectName YourProjectNameFromStep4
  • uninstall-package System.Runtime -projectName YourProjectNameFromStep4

После перезапуска Visual Studio он может сказать: "Не удается найти System.Collections.Concurrent, но закрывать глаза для этого, похоже, работает.

Ответ 6

Такая же проблема. Я удалил ef7-beta8 и его зависимости и переустановил ef7... Проблема решена, поэтому кажется, что есть ошибка в логике обновления или в самом nuget, не знаю точно.

Ответ 7

В качестве обходного пути я создал новый проект, установил EF 7, добавил исходные файлы вручную и работал.