.NET Core - 共享库



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

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

Example

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

dotnet help 

Command

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

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

dotnet pack

Execute

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

Debug Folder

现在问题是 NuGet 包中有什么内容,要查看它,我们可以使用 NuGet Package Explorer。现在让我们打开 NuGet Package Explorer。

Open NuGet

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

First Option

选择StringLibrary.1.0.0.nupkg 并单击打开

Click 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 并单击安装

Commandline

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

Manual Install

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

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

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

步骤 6 - 您可以看到已安装StringLibraryStringLibrary 可以进一步添加到私有源。

Private Feed

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

Folder

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

Version Name

NuGet 包位于此处。

广告