• 项目文件 :对于 SDK 样式项目, .csproj 包含目标框架引用。
  • .nuspec 清单 :根据项目的目标框架,包可以指示要包含在项目中的不同包。
  • .nupkg 文件夹名称 :包的 lib 文件夹内的文件夹可根据目标框架进行命名,每个文件夹都包含适合该框架的 DLL 及其他内容。
  • packages.config :依赖项的 targetframework 特性指定要安装的包的变体。
  • NuGet 支持所有新式 .net 目标框架:

  • 有关最新目标框架的列表,请参见 SDK 样式项目文档中的目标框架
  • 支持的框架

    通常按简短的目标框架名字对象或 TFM 引用框架。 在 .NET Standard 这也通用化到了 TxM ,以允许单个引用多个框架。

    计算下方表格的 NuGet 客户端源代码位于以下位置:

  • 支持的框架名称: FrameworkConstants.cs
  • Framework 优先级和映射: DefaultFrameworkMappings.cs
  • NuGet 客户端支持下表中的框架。 等效项显示在括号内 []。 请注意,某些工具(如 dotnet )可能会在某些文件中使用规范的 TFM 变体。 例如,在文件中使用, dotnet pack 而不是 netcoreapp2.0 .NETCoreApp2.0 .nuspec 各种 NuGet 客户端工具正确处理这些变体,但是在直接编辑文件时,应始终使用规范的 TFM。

    TFM/TxM

    NET Standard

    .NET Standard 简化二进制兼容框架之间的引用,允许单个目标框架引用其他框架的组合。 (有关背景信息,请参阅 .NET 入门 。)

    NuGet 获取最新框架工具 模拟用于从基于项目框架的包中的许多可用框架资产中选择一个框架的 NuGet 逻辑。

    NuGet 3.3 及更早版本应该使用 dotnet 系列的名字对象;v3.4 及更高版本应该使用 netstandard 名字对象语法。

    可移植类库

    建议不要使用 PCL 。 尽管支持 PCL,但包创建者反而应支持 netstandard。 .NET Platform Standard 是 PCL 的一种演变,表示跨平台的二进制可移植性,使用未绑定到静态库(如 portable-a+b+c 名字对象)的单一名字对象。

    若要定义一个引用多个子目标框架的目标框架,请使用 portable 关键字作为所引用框架列表的前缀。 避免人为地包含非直接编译的额外框架,因为可能会导致这些框架中出现意外的负面效果。

    由第三方定义的附加框架提供了与其他环境的兼容性,这些环境可通过此方式进行访问。 此外,还有速记配置文件编号,可用于以 Profile# 形式引用相关框架的组合,但不建议通过此方法引用这些编号,因为这会降低文件夹和 .nuspec 的可读性。

    配置文件编号 .NET Standard