#.net-core #entity-framework-core #nuget #visual-studio-2019
#.net-core #entity-framework-core #nuget #visual-studio-2019
Вопрос:
У меня есть .Net Core 3.1, созданный в Visual Studio 2019 (C # .Net Core library). Я пытаюсь добавить EntityFrameworkCore через диспетчер пакетов NuGet в проект. При попытке добавить я получил некоторые ошибки совместимости.
Итак, мы создали проекты и добавили EntityFrameworkCore в другую систему. При попытке создать этот проект в Visual Studio 2019 в моей системе я получаю следующие ошибки:
Это снимок .Net и .NETCore runtime и sdk, установленные на компьютере:
Вот результаты восстановления dotnet: (частичный список)
Foo.WPFApp> восстановление dotnet Определение проектов для восстановления …: предупреждение NU1701: система пакетов.ComponentModel.Аннотации 5.0.0′ были восстановлены с помощью ‘.NetFramework,Version = v4.6.1, .NetFramework,Version = v4.6.2, .NetFramework,Version = v4.7, .NetFramework,Version = v4.7.1, .NetFramework,Version = v4.7.2,.NetFramework,Version= v4.8’ вместо целевой среды проекта ‘.NETCoreApp,Version = v3.1’. Этот пакет может быть не полностью совместим с вашим проектом. [Foo.WPFApp Bar .WPFApp.sln]: ошибка NU1202: пакет Microsoft.EntityFrameworkCore 5.0.0 несовместим с netcoreapp3.1 (.NETCoreApp, версия = v3.1). Пакет Microsoft.EntityFrameworkCore 5.0.0 не поддерживает никаких целевых фреймворков. [Foo.WPFApp Bar .WPFApp.sln]: ошибка NU1202: пакет Microsoft.EntityFrameworkCore.Abstractions 5.0.0 несовместим с netcoreapp3.1 (.NETCoreApp, версия = v3.1). Пакет Microsoft.EntityFrameworkCore.Abstractions 5.0.0 не поддерживает никаких целевых фреймворков. [Foo.WPFApp Bar .WPFApp.sln]: ошибка NU1202: пакет Microsoft.Расширения.Кэширование.Память 5.0.0 несовместима с netcoreapp3.1 (.NETCoreApp, версия = v3.1). Пакет Microsoft.Расширения.Кэширование.Память 5.0.0 не поддерживает никаких целевых фреймворков. [Foo.WPFApp Bar .WPFApp.sln]: ошибка NU1202: пакет Microsoft.Расширения.DependencyInjection 5.0.0 несовместим с netcoreapp3.1 (.NETCoreApp,версия = v3.1). Пакет Microsoft.Расширения.DependencyInjection 5.0.0 не поддерживает никаких целевых фреймворков. [Foo.WPFApp Bar .WPFApp.sln]: ошибка NU1202: пакет Microsoft.Расширения.Ведение журнала 5.0.0 несовместимо с netcoreapp3.1 (.NETCoreApp,версия = v3.1). Пакет Microsoft.Расширения.Ведение журнала 5.0.0 не поддерживает никаких целевых фреймворков. [Foo.WPFApp Bar .WPFApp.sln]: ошибка NU1202: Пакет
Вот результаты сборки dotnet: (частичный список)
Определение проектов для восстановления … …. csproj: предупреждение NU1701: система пакетов.ComponentModel.Аннотации 5.0.0′ были восстановлены с помощью ‘.NetFramework,Version = v4.6.1, .NetFramework,Version = v4.6.2, .NetFramework,Version = v4.7, .NetFramework,Version = v4.7.1, .NetFramework,Version = v4.7.2,.NetFramework,Version= v4.8’ вместо целевой среды проекта ‘.NETCoreApp,Version = v3.1’. Этот пакет может быть не полностью совместим с вашим проектом. [Foo.WPFApp Bar .WPFApp.sln] …. csproj: ошибка NU1202: пакет Microsoft.EntityFrameworkCore 5.0.0 несовместим с netcoreapp3.1 (.NETCoreApp, версия = v3.1). Пакет Microsoft.EntityFrameworkCore 5.0.0 не поддерживает никаких целевых фреймворков. [Foo.WPFApp Bar .WPFApp.sln] …. csproj: ошибка NU1202: пакет Microsoft.EntityFrameworkCore.Abstractions 5.0.0 несовместим с netcoreapp3.1 (.NETCoreApp, версия = v3.1). Пакет Microsoft.EntityFrameworkCore.Abstractions 5.0.0 не поддерживает никаких целевых фреймворков. [Foo.WPFApp Bar .WPFApp.sln] …. csproj: ошибка NU1202: пакет Microsoft.Расширения.Кэширование.Память 5.0.0 несовместима с netcoreapp3.1 (.NETCoreApp, версия = v3.1). Пакет Microsoft.Расширения.Кэширование.Память 5.0.0 не поддерживает никаких целевых фреймворков. [Foo.WPFApp Bar .WPFApp.sln] …. csproj: ошибка NU1202: пакет Microsoft.Расширения.DependencyInjection 5.0.0 несовместим с netcoreapp3.1 (.NETCoreApp, версия = v3.1). Пакет Microsoft.Расширения.DependencyInjection 5.0.0 не поддерживает никаких целевых фреймворков. [Foo.WPFApp Bar .WPFApp.sln] ….csproj: ошибка
Может кто-нибудь помочь мне определить проблему и исправить ее?
Ответ №1:
1) Попробуйте сначала очистить кэш nuget или просто удалить все файлы кэша в разделе C:Usersxxx(current user).nugetpackages
.
2) отключите все установленные и сторонние расширения в разделе Расширения -> Управление расширениями -> Установлено
Или используйте devenv / safemode для запуска начального vs, чтобы проверить, повторится ли проблема.
Кроме того, пожалуйста, не забудьте удалить все bin
obj
папки и перед установкой пакета nuget.
Если ваша версия VS2019 отсутствует 16.8.X
, пожалуйста, обновите ее, поскольку NET5.0
применяется с тех пор 16.8
.
Кроме того, попробуйте создать новое приложение net core, а затем проверьте, не повторится ли проблема.
Комментарии:
1. Проблема решена — спасибо. Я выполнил шаги 1) и 2). Похоже, что что-то где-то было кэшировано.
Ответ №2:
Я удалил свой предыдущий ответ, поскольку он был недействительным.
Это скомпилировано в Visual Studio 2019. Он работал на 1 машине. Когда мы перенесли решение на другую машину, оно не сработало. Пакеты: EntityFrameworkCore, .SQL и .Инструменты
Попробуйте очистить bin/
и obj/
папки перед перекомпиляцией проекта на компьютере, на котором произошел сбой.
Попробуйте также скомпилировать ее, используя dotnet build
непосредственно из командной строки.
Комментарии:
1. попробовал оба варианта. Те же результаты. Я обновил свою версию VS 2019 до 16.8.2 (последняя версия). Я только что загрузился на другой компьютер, и он работает нормально. Есть ли что-то кэшированное / поврежденное в моей среде где-нибудь?
2. Если вы это сделаете
dotnet --info
, можете ли вы увидеть установленный .NET 3.1.x SDK?3. Проверьте post на наличие установленных runtime amp; sdk.
4. Здесь мы кое-что упускаем. Можете ли вы предоставить вывод
dotnet restore
(иdotnet build
если на этапе восстановления не обнаружено ошибок) после повторного удаления папок bin/ и obj/?