В вашем проекте необходимо настроить таргетинг на несколько фреймворков;
- Щелкните правой кнопкой мыши имя проекта и выберите «Редактировать файл .cproj»
- .становится
<TargetFrameworks>...</TargetFrameworks>
укажите целевые рамки (см.
документы для всех версий):
<TargetFrameworks>net472;net48;netcoreapp2.0;netcoreapp2.1;netcoreapp2.2</TargetFrameworks>
если в вашей библиотеке будут какие-либо ссылки, вам необходимо вручную указать все ссылки для каждой версии:
<ItemGroup Condition=" '$(TargetFramework)' == 'net471' ">
<Reference Include="System.Net" />
</ItemGroup>
или указать ссылку для нескольких версий:
<ItemGroup Condition=" '$(TargetFramework)' == 'netcoreapp2.0' || '$(TargetFramework)' == 'netcoreapp2.1' || '$(TargetFramework)' == 'netcoreapp2.2' ">
<PackageReference Include="Microsoft.AspNetCore.Mvc.TagHelpers" Version="1.0.0" />
</ItemGroup>
или укажите ссылку на пакет для всех целевых платформ:
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Localization" Version="1.0.0" />
</ItemGroup>
вы можете указать минимальную требуемую версию, и фреймворк установит последнюю совместимую версию.Например, ниже мы указываем минимальную версию пакета локализации как 1.0.0, но когда она будет установлена на .Net Core 2.2, будет установлена новейшая совместимая версия, для получения более подробной информации о версиях см. диапазоны версий и символы подстановки
последнее, но не менее важное;в вашем коде вы должны проверить конкретные целевые рамки, в которых вам нужно использовать совместимую строку кода с каждой версией.
Например, чтобы получить информацию о культуре, вам нужно указать другой код для разных версий .Net Core:
#if NETCOREAPP1_0
var culture = new CultureInfo("en-US");
#else
var culture = CultureInfo.GetCultureInfo("en-US");
#endif
_logger.LogInformation($"{culture.Name}");
Если вы используете Visual Studio, вы увидите раскрывающуюся навигациюдля всех целевых сред вы можете использовать его для переключения между целевыми средами и проверки совместимости кода.