На какую версию стандарта .NET .NET Core 2.2 пытается ориентироваться?

У меня есть приложение.NET Core 2.2, которое ссылается на пакет NuGet, который имеет цели для.NET Standard 2.0 и 2.1.

т.е. цели пакета NuGet

<TargetFrameworks>netstandard2.0;netstandard2.1</TargetFrameworks>

Этот пакет NuGet нацелен на разные версии пакетов NuGet DI и Logging в зависимости от целевой платформы:

<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="2.2.0" Condition="'$(TargetFramework)' == 'netstandard2.0'" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="3.0.0" Condition="'$(TargetFramework)' == 'netstandard2.1'" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="2.2.0" Condition="'$(TargetFramework)' == 'netstandard2.0'" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="3.0.0" Condition="'$(TargetFramework)' == 'netstandard2.1'" />

Мое приложение.NET Core нацелено на.NET Core 2.2:

<TargetFramework>netcoreapp2.2</TargetFramework>

Когда я смотрю на зависимости NuGet для приложения.NET Core 2.2, оно извлекает версии 3.0.0 пакетов Logging и DI. На мой взгляд, это означает, что он пытается использовать целевую версию пакета NuGet для.NET Standard 2.1.

Как я могу заставить его использовать цель.NET Standard 2.0?

ОБНОВИТЬ

Похоже, это проблема с Visual Studio. После перезапуска все начало компилироваться и ошибки исчезли. Однако теперь, когда я пытаюсь использовать Entity Framework 3.0, заключенный в директивы предварительной компиляции (#if NETSTANDARD2_1) текст отображается серым цветом, как будто директива не была определена. Если я попытаюсь скомпилировать приложение, оно выдает ошибки, которые ожидаются, поскольку я не включил надлежащийusings. Однако эти ошибки не появляются перед компиляцией.

0 ответов

Другие вопросы по тегам