На какую версию стандарта .NET нацеливается .NET Core 2.2? - PullRequest
0 голосов
/ 30 октября 2019

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

, то есть цели пакета NuGet

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

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

<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.

enter image description here

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

ОБНОВЛЕНИЕ

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...