.NET Core - 共享库


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

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

例子

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

dotnet help 

命令

最后,您可以看到不同的命令,例如 new、restore 和 build 等。

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

dotnet pack

执行

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

调试文件夹

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

打开 NuGet

选择第一个选项“打开本地包”

第一个选项

选择StringLibrary.1.0.0.nupkg并单击Open

单击“确定”

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

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

符号

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

字符串库.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包

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

版本

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

我们需要首先在 NuGet feed 中的某个位置发布,然后我们可以在另一个项目中使用它。

有两个选项可以发布更新的元数据 -

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

在这里,我们将使用私有 NuGet feed,因为它比在 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

命令行

步骤 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可以进一步添加到私有提要中

私人饲料

步骤 7 - 让我们转到该文件夹​​。

文件夹

步骤 8 - 在stringlibrary文件夹中,您将看到另一个带有版本名称的文件夹,这里是 1.0.1。

版本名称

NuGet 包位于此处。