Вы, похоже, перепутали некоторые вещи:
- .NET Core SDK в основном определяет инструменты, доступные вам.Если у вас нет веских причин, вы всегда должны запускать последнюю версию SDK.Поэтому вы должны использовать текущую версию
2.1.300
SDK.Версия SDK не имеет прямого влияния на то, какую среду выполнения вы будете использовать. - Если вы хотите запустить приложение ASP.NET Core в версии 2.1 в .NET Core, то у вас будетиспользовать целевую платформу
netcoreapp2.1
. - Очевидно, вам придется использовать пакеты
Microsoft.AspNetCore.*
с версией 2.1. - Если вы хотите использовать Entity Framework Core с версией 2.0.x, то вам нужно явно указать на это.Обратите внимание, что не может использовать в этом случае ссылку на общую платформу
Microsoft.AspNetCore.App
.
Таким образом, проект, который использует ASP.NET Core 2.1 в .NET Core 2.1, использует Entity Framework2.0 с провайдером Pomelo MySQL может выглядеть следующим образом:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore" Version="2.1.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.1.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.0.3" />
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="2.0.1" />
</ItemGroup>
</Project>
Если вы не пытаетесь сделать это в рамках веб-проекта ASP.NET Core, а вместо этого в проекте библиотеки, тогда вы нацеливаетесь netstandard2.0
,В этом случае вам просто нужно импортировать соответствующие пакеты напрямую:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.0.3" />
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="2.0.1" />
</ItemGroup>
</Project>
Обратите внимание, что Entity Framework Core не включен в стандарт .NET, он просто нацелен на него, что означаетчто он построен на основе стандарта;точно так же, как ваш библиотечный проект.
Если вы хотите использовать свой библиотечный проект из приложения ASP.NET Core 2.1, то вышеупомянутое ограничение будет по-прежнему применяться: вы не можете использовать ссылку на общую платформу Microsoft.AspNetCore.App
,так как это вызовет конфликт версий.