C# 为什么.NET Standard 2.0(多目标)项目在其中一个相关程序集上有警告?

C# 为什么.NET Standard 2.0(多目标)项目在其中一个相关程序集上有警告?,c#,.net,.net-standard,C#,.net,.net Standard,我有一个项目目前的目标是NetStandard1.4 我正试图使其成为多目标框架: net461 netstandard14 netstandard20 rational是针对一个特定的框架(一个应用程序目标),只下拉最小数量的程序集。因此,在上面的例子中,ns14的最小框架是461,但是一个针对net461的应用程序拉低了一些核心内容,人们说这些内容在这些组件未被使用时会增加额外的噪音 当我尝试针对这3个框架时,我在NetStandard2.0版本中得到了一些警告 我尝试在VisualS

我有一个项目目前的目标是
NetStandard1.4

我正试图使其成为多目标框架:

  • net461
  • netstandard14
  • netstandard20
rational是针对一个特定的框架(一个应用程序目标),只下拉最小数量的程序集。因此,在上面的例子中,
ns14
的最小框架是
461
,但是一个针对
net461
的应用程序拉低了一些核心内容,人们说这些内容在这些组件未被使用时会增加额外的噪音

当我尝试针对这3个框架时,我在
NetStandard2.0
版本中得到了一些警告

我尝试在VisualStudio中将鼠标悬停在该程序集上,但没有显示工具提示。此外,errorlist或output(build)窗口也没有解释


有没有办法让我知道警告是什么?甚至可以通过CLI?

在.netStandard项目中引用
System.Net.Http
。此引用已存在于
NetStandard.Library
中,因此无需添加它。大多数情况下,您应该只引用项目或NuGet包

在我的计算机上,
dotnet build
确实失败,并出现以下警告:

C:\Program Files\dotnet\sdk\2.1.100-preview-007326\Microsoft.Common.CurrentVersion.targets(2051,5):警告MSB3245:无法解析此引用。找不到程序集“System.Net.Http”。检查以确保磁盘上存在程序集。如果代码需要此引用,则可能会出现编译错误

如果不想添加对NetStandard.Library的引用,解决方案是使用
条件
属性仅添加对net461版本的引用:

<PropertyGroup>
  <TargetFrameworks>net461;netstandard1.4;netstandard2.0</TargetFrameworks>
</PropertyGroup>

<ItemGroup Condition="'$(TargetFramework)'=='net461'">
  <Reference Include="System.Net.Http" />
</ItemGroup>


net461;netstandard1.4;netstandard2.0