从完全引用.net标准库是否需要运输系统。*程序集

时间:2017-03-26 21:38:04

标签: c# .net .net-standard .net-standard-1.4

我注意到在我的.net完整项目(4.6.1)中引用.net标准库(1.4)后,我的输出文件夹中充满了System。*。dll程序集。

这是否意味着如果我定位完整框架但引用.net标准库,我必须附带它使用的所有系统库的.net标准版本?

1 个答案:

答案 0 :(得分:1)

通常,当您创建.NET标准库时,您需要Multi-targeting。在.csproj文件中,您将更改

<FrameworkTarget>netstandard1.4</FrameworkTarget>

<TargetFrameworks>netstandard1.4;net45</TargetFrameworks>

请注意将s添加到代码中。

一旦你这样做,并为库生成NuGet包,该库将直接支持.net 4.5和netstandard。

例如,这里来自Json.NET's csproj file.

<TargetFrameworks Condition="'$(DotnetOnly)'==''">net45;net40;net35;net20;netstandard1.0;netstandard1.3;portable-net45+win8+wpa81+wp8</TargetFrameworks>

因此它将为.NET 4.5,.NET 4.0,.NET 3.5,.NET 2.0,netstandard 1.0,netstandard 1.3以及面向net45,win8,wpa81和wp8的PCL库生成DLL,所有这些dll都将打包到NuGet包中,当你引用包时,只使用最接近的匹配。