На какую версию стандарта .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
. Однако эти ошибки не появляются перед компиляцией.