Почему я получаю ошибки сборки при попытке создать библиотеку классов .NETCore 3.1 с EntityFrameworkCore в Visual Studio 2019?

#.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 в моей системе я получаю следующие ошибки:

Ошибки в Visual Studio 2019

Это снимок .Net и .NETCore runtime и sdk, установленные на компьютере: Установленная среда выполнения и пакеты 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/?