【发布时间】:2015-10-16 18:50:39
【问题描述】:
TL;DR:
鉴于:我编写了一个具有相对可移植功能的库(例如,
Left.Pad.©.dll)。我想通过 NuGet 使其可用。要求:如果有人想在 any 版本的 any 平台上的 any 版本的 any 上使用我的库 操作系统,通过在 any IDE 或 any 代码编辑器中编写代码安装了 any 更新,他们应该能够做到。
问题:NuGet target frameworks 的最小集是什么?
-
额外问题:如果有任何“死”的框架不应该作为目标,或者在选择目标框架时应该考虑的其他因素,你也可以提及。
想法(旧版):
NuGet 包支持multiple .NET Framework versions and profiles,例如一个包可以提供net20、net30、net35、net40、net45、sl3、sl4、sl5等版本。然而,假设包的功能并不总是存在差异,提供大量版本将浪费构建时间和包大小,并导致不必要的复杂性。另一方面,仅为受支持的最低框架版本提供包可能会导致功能缺失,例如 .NET 4 支持多个 CLR 版本的进程内并行执行,但以前的版本不支持,因此此功能如果仅提供 .NET 3.5 的版本,将会丢失(我不确定;我从未使用过,也不知道详细信息)。如果提供了 PCL 版本,我假设逻辑很简单:只需排除 PCL 涵盖的版本。
【问题讨论】:
-
只使用你需要的最低版本。适用于任何同等或更高版本。
-
.NET Core 是一个 *framework *(像 Xamarin 和 .NET Framework),Standard 是一个“contract/api”,PCL 已经过时了。这个页面是一个很好的起点:docs.microsoft.com/en-us/dotnet/standard/net-standard它表明对于这样一个通用问题没有通用答案。你所追求的并不明显,也许你应该完全改写这个问题恕我直言。
-
@SimonMourier NuGet 将它们都称为“frameworks”。无论如何,编辑了这个问题,希望它更清楚。
-
把这个问题保持这么长时间是没有意义的,因为答案会随着产品生命周期的变化而变化。
-
正如 lex li 所说,这个问题没有真正的答案。今天,对于一个新项目,我会使用 Microsoft 所宣传的 netstandard 2.0。没有简单的解决方案来支持“任何”、“一切”,就像你想要的那样,我认为这毫无意义(SL 和 WP 已死,PCL 已过时等)
标签: c# .net nuget compatibility .net-standard