创建用于 NuGet 的新的多平台库

创建使用 PCL 或 .NET Standard 的多平台库项目意味着可以将生成的 NuGet 添加到支持目标配置文件的任何 .NET 项目,包括 ASP.NET 项目或使用 WinForms、WPF 或 UWP 的桌面应用。

该库只能包含所选 PCL 或 .NET Standard 配置文件支持的代码,以及添加的任何其他 NuGet。 这适用于可以在 .NET 基类库中完整表示的业务逻辑和算法。

会向 NuGet 包中创建并内置单个程序集。

如果以后需要特定于平台的功能,可以添加特定于平台的项目

创建多平台库 NuGet 的步骤

  1. 选择“文件”>“新建解决方案”(或右键单击现有解决方案,然后选择“添加”>“新建项目)。

  2. 从“多平台”>“库”部分选择“多平台库”

    Screenshot shows Choose a template with Multiplatform Library selected.

  3. 输入名称和说明,并选择“为所有平台使用一个”:

    Screenshot shows values entered for Name, Description, and Implementation.

  4. 完成该向导。 会在解决方案中创建单个库项目。

  5. 右键单击新库项目,然后选择“选项”。 通过“生成”>“常规”部分可设置“目标框架”- 选择 .NET 可移植 PCL 配置文件或 .NET Standard 版本:

    Choose PCL or .NET Standard for library type

  6. 此外,在“项目选项”窗口中,打开“NuGet 包”>“元数据”部分并输入所需的元数据(以及任何可选元数据):

    Enter required metadata

  7. 右键单击库项目并选择“创建 NuGet 包”(或生成或部署解决方案),.nupkg NuGet 包文件将保存在 /bin/ 文件夹中(“调试”或“发布”,具体取决于配置):

    The NuGet package file will be saved in the bin folder either Debug or Release, depending on configuration

验证输出

NuGet 包也是 ZIP 文件,因此可以检查生成的包的内部结构。

此屏幕截图显示了基于 PCL 的 NuGet 的内容 - 仅包含单个 PCL 程序集:

Files contained in the NuGet package

添加平台特定代码

基于 PCL 的项目和基于 .NET Standard 的项目不能包含特定于平台的引用(例如 iOS 或 Android 功能)。

如果需要扩展现有的 PCL 项目或 .NET Standard 项目以包含特定于平台的代码,可以通过右键单击项目并选择“添加”>“添加平台实现...”来实现:

Add platform implementation menu

可以向解决方案添加一个或多个平台项目,可以选择将现有 PCL 或 .NET Standard 库转换为共享项目:

Add platform options such as iOS, Android, and Shared Project

转换为共享项目后,访问“项目选项”>“NuGet 包”> 引用程序集”部分,并确保选中任何所需的配置文件(以便 NuGet 仍与之前使用它的项目兼容)。