.NET Core - 共享库

在本章中,我们将讨论如何将您的库共享为 NuGet 包,以便它可以在另一个项目中使用。 创建包从您要打包并通过公共 nuget.org 库或组织内的私有库与他人共享的代码开始。该包还可以包含其他文件,例如在安装包时显示的 readme,并且可以包含对某些项目文件的转换。

现在让我们考虑一个简单的例子,我们将从库中创建一个 NuGet 包。 为此,请打开命令提示符并转到库项目的 project.json 文件所在的文件夹。

示例

现在让我们运行以下命令。

dotnet help 

命令

最后,你可以看到new、restore、build等不同的命令

最后一个命令是 pack; 这将创建一个 NuGet 包。 现在让我们执行以下命令。

dotnet pack

执行

您现在可以看到在 bin 文件夹中生成了 NuGet 包; 让我们打开 bin\Debug 文件夹。

调试目录

现在的问题是 NuGet 包里面有什么,我们可以使用 NuGet Package Explorer 查看。 现在让我们打开 NuGet 包资源管理器。

打开 NuGet

选择第一个选项Open a local package

第一个选项

选择 StringLibrary.1.0.0.nupkg 并单击Open

点击 Ok

您可以看到在包内容部分我们只有 StringLibrary.dll。 在包元数据部分,您将看到有关此库的一些信息,例如 ID、版本和所有依赖项。

现在让我们打开 StringLibrary.1.0.0.symbols.nupkg

Symbols

在此 NuGet 包中,您将看到源文件和 *.pdb 文件。 如果双击 StringLib.cs 文件,您也会看到源代码。

StringLib.cs

这里的问题是,如何配置版本,作者和描述等元数据?

project.json 文件在 .NET Core 项目上用于定义项目元数据、编译信息和依赖项。 现在让我们打开 project.json 文件并添加以下附加信息。

{ 
   "authors": [ "Mark Junior" ], 
   "description": "String Library API", 
   "version" : "1.0.1-*", 
   "supports": {}, 
   
   "dependencies": { 
      "Microsoft.EntityFrameworkCore": "1.1.0", 
      "Microsoft.NETCore.Portable.Compatibility": "1.0.1", 
      "NETStandard.Library": "1.6.0", 
      "System.Runtime.Serialization.Json": "4.0.3", 
      "System.Runtime.Serialization.Primitives": "4.3.0" 
   }, 
   "frameworks": { 
      "netstandard1.3": {} 
   } 
}

您现在可以在此处看到其他信息,例如作者姓名、描述和版本。 让我们保存这个文件,构建库项目,然后再次执行"dotnet pack"命令。

.Net Pack

在 bin\Debug 文件夹中,可以看到 StringLibrary NuGet 包是用 1.0.1 版本生成的; 让我们在 NuGet Package Explorer 中打开它。

Version

您将看到更新后的元数据。 现在的问题是,我们如何在另一个包中使用它。

我们需要先在 NuGet 提要中的某个位置发布,然后我们才能在另一个项目中使用它。

发布更新的元数据有两个选项 −

  • 将其发布到 nuget.org
  • 将元数据推送到私有 NuGet 提要

在这里我们将使用私有 NuGet 提要,因为它比在 nuget.org 上设置帐户容易得多。 要了解如何将包发布到 nuget.org,您可以遵循此处指定的所有指南 https://docs.microsoft.com/en-us/nuget/create-packages/publish-a-package

按照以下步骤将更新后的元数据推送到私有 NuGet 源。

步骤 1 − 首先,我们需要 nuget 命令行实用程序,我们必须安装它。 现在让我们打开 NuGet 包管理器并搜索 nuget.commandline。

步骤 2 − 选择 Nuget.Commandline 并单击 Install

Commandline

步骤 3 − 单击确定 安装 Nuget.Commandline。 也可以通过以下网址 https://dist.nuget.org/index.html 下载,然后设置环境变量,手动安装。

手动安装

步骤 4 − 安装完成后,让我们再次打开命令提示符并转到 NuGet 包所在的 bin\Debug 文件夹并指定以下命令 −

nuget add StringLibrary.1.0.1.nupkg -Source D:\PrivateNugetPackages 

步骤 5 − 在上面的命令中,我们将 StringLibrary.1.0.1.nupkg 包添加到我们的私有源中,位置是 D:\PrivateNugetPackages,-Source 指定包源。

步骤 6 − 您可以看到 StringLibrary 已安装; StringLibrary 可以进一步添加到私有源中。

Private Feed

步骤 7 −让我们转到那个文件夹。

文件夹

步骤 8 − 在 stringlibrary 文件夹中,您将看到另一个文件夹,其版本名称为 1.0.1。

版本名称

NuGet 包位于此处。