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