创建使用 PCL 或 .NET Standard 的多平台库项目意味着可以将生成的 NuGet 添加到支持目标配置文件的任何 .NET 项目,包括 ASP.NET 项目或使用 WinForms、WPF 或 UWP 的桌面应用。
该库只能包含所选 PCL 或 .NET Standard 配置文件支持的代码,以及添加的任何其他 NuGet。 这适用于可以在 .NET 基类库中完整表示的业务逻辑和算法。
会向 NuGet 包中创建并内置单个程序集。
如果以后需要特定于平台的功能,可以添加特定于平台的项目。
创建多平台库 NuGet 的步骤
选择“文件”>“新建解决方案”(或右键单击现有解决方案,然后选择“添加”>“新建项目)。
从“多平台”>“库”部分选择“多平台库”:
输入名称和说明,并选择“为所有平台使用一个”:
完成该向导。 会在解决方案中创建单个库项目。
右键单击新库项目,然后选择“选项”。 通过“生成”>“常规”部分可设置“目标框架”- 选择 .NET 可移植 PCL 配置文件或 .NET Standard 版本:
右键单击库项目并选择“创建 NuGet 包”(或生成或部署解决方案),.nupkg NuGet 包文件将保存在 /bin/ 文件夹中(“调试”或“发布”,具体取决于配置):
验证输出
NuGet 包也是 ZIP 文件,因此可以检查生成的包的内部结构。
此屏幕截图显示了基于 PCL 的 NuGet 的内容 - 仅包含单个 PCL 程序集:
添加平台特定代码
基于 PCL 的项目和基于 .NET Standard 的项目不能包含特定于平台的引用(例如 iOS 或 Android 功能)。
如果需要扩展现有的 PCL 项目或 .NET Standard 项目以包含特定于平台的代码,可以通过右键单击项目并选择“添加”>“添加平台实现...”来实现:
可以向解决方案添加一个或多个平台项目,可以选择将现有 PCL 或 .NET Standard 库转换为共享项目:
转换为共享项目后,访问“项目选项”>“NuGet 包”> 引用程序集”部分,并确保选中任何所需的配置文件(以便 NuGet 仍与之前使用它的项目兼容)。