我注意到在我的.net完整项目(4.6.1)中引用.net标准库(1.4)后,我的输出文件夹中充满了System。*。dll程序集。
这是否意味着如果我定位完整框架但引用.net标准库,我必须附带它使用的所有系统库的.net标准版本?
答案 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包中,当你引用包时,只使用最接近的匹配。