.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 包资源管理器。
选择第一个选项Open a local package。
选择 StringLibrary.1.0.0.nupkg 并单击Open。
您可以看到在包内容部分我们只有 StringLibrary.dll。 在包元数据部分,您将看到有关此库的一些信息,例如 ID、版本和所有依赖项。
现在让我们打开 StringLibrary.1.0.0.symbols.nupkg。
在此 NuGet 包中,您将看到源文件和 *.pdb 文件。 如果双击 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"命令。
在 bin\Debug 文件夹中,可以看到 StringLibrary NuGet 包是用 1.0.1 版本生成的; 让我们在 NuGet Package Explorer 中打开它。
您将看到更新后的元数据。 现在的问题是,我们如何在另一个包中使用它。
我们需要先在 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。
步骤 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 包位于此处。