.net core 如何避免与NuGet的兼容性警告?

.net core 如何避免与NuGet的兼容性警告?,.net-core,nuget,.net Core,Nuget,我正在为Linux构建一个.NETCore2.0应用程序。以下是项目文件的相关部分 <Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>netcoreapp2.0</TargetFramework> </PropertyGroup> </Project> 当我构建时,它是成功的,但是为了清晰起见,警告被剪掉了 PS&g

我正在为Linux构建一个.NETCore2.0应用程序。以下是项目文件的相关部分

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  </PropertyGroup>
</Project>
当我构建时,它是成功的,但是为了清晰起见,警告被剪掉了

PS> dotnet build
Microsoft (R) Build Engine version 15.5.180.51428 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

...

Build succeeded.

Example.csproj : warning NU1701: Package 'System.Net.Http.Formatting.Extension 5.2.3' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.0'. This package may not be fully compatible with your project.
Example.csproj : warning NU1701: Package 'System.Net.Http.Formatting.Extension 5.2.3' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.0'. This package may not be fully compatible with your project.
    2 Warning(s)
    0 Error(s)

Time Elapsed 00:00:09.08
有几个问题

为什么dotnet/nuget允许我将此包添加到netcoreapp2.0项目中? 为什么或者怎样才能阻止这种情况发生?
我知道有一款与.NET Core 2.0兼容的软件提供了相同的功能。我希望这场比赛失败,而且显然失败!我还知道,我不能将nuget警告升级为错误。nuget将.NET 4.6.1程序集视为与.NET Core 2.0和.NET Standard 2.0兼容,但会向您显示一条警告,指示如果nuget软件包使用本机API(如WPF),则您的应用程序可能无法工作

您可以将警告作为错误启用,这将导致NU1701警告的还原失败

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
    <TreatWarningsAsErrors>True</TreatWarningsAsErrors>
  </PropertyGroup>
</Project>
或者只是将NU1701警告标记为错误

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
    <WarningsAsErrors>$(WarningsAsErrors);NU1701</WarningsAsErrors>
  </PropertyGroup>
</Project>
不幸的是,这并不能防止dotnet add package无法添加PackageReference,但恢复将失败

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
    <WarningsAsErrors>$(WarningsAsErrors);NU1701</WarningsAsErrors>
  </PropertyGroup>
</Project>