.NET Core 2.2尝试定位哪个版本的.NET标准?

时间:2019-10-29 21:49:17

标签: .net .net-core nuget .net-standard-2.0 .net-standard-2.1

我有一个.NET Core 2.2应用程序,该应用程序引用了同时具有.NET Standard 2.0和2.1的目标的NuGet程序包。

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

当我查看.NET Core 2.2应用程序的NuGet依赖项时,它引入了Logging和DI软件包的3.0.0版本。对我来说,这表明它正在尝试使用NuGet包的.NET Standard 2.1目标版本。

enter image description here

如何强制它使用.NET Standard 2.0目标?

更新

这似乎是Visual Studio的问题。重新启动后,所有内容开始编译,错误消失了。但是,现在,当我尝试使用预编译指令(#if NETSTANDARD2_1)中包装的Entity Framework 3.0时,文本将变灰,就好像未定义该指令一样。如果我尝试编译该应用程序,它将给我带来错误,因为我没有包括正确的usings,所以这是预期的。不过,这些错误不会在编译前显示。

0 个答案:

没有答案