我注意到在从我的 .net 完整项目 (4.6.1) 中引用 .net 标准库 (1.4) 后,我的输出文件夹中充满了 System.*.dll 程序集。
这是否意味着如果我以完整框架为目标但引用 .net 标准库,我必须随附它使用的所有系统库的 .net 标准版本?
最佳答案
通常当你制作一个你想要做的 .NET 标准库时 Multi-targeting .在您的 .csproj 文件中,您将更改您的
<TargetFramework>netstandard1.4</TargetFramework>
到
<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 包中,当您引用该包时,只会使用最接近的匹配项。
关于c# - 从完整引用 .net 标准库是否需要运送系统。* 程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43034867/