Dotnet Core 简明教程
.NET Core - Sharing Libraries
在本节中,我们将探讨如何将您的库作为 NuGet Package 共享,以便在其他项目中使用。创建包从希望打包并与其他人共享的代码开始,可以通过公用 nuget.org 图库或组织内的专用 图库进行共享。包还可以包括其他文件,例如在安装包时显示的 readme ,并且可以对某些项目文件进行转换。
现在,让我们考虑一个简单的示例,其中我们将从库中创建一个 NuGet 包。为此,请打开命令提示符并转到库项目的 project.json 文件所在的文件夹。
现在,让我们运行以下命令。
dotnet help
最后,您可以看到诸如 new、restore 和 build 之类的不同命令。
最后一个命令是 pack; 这将创建一个 NuGet 包。现在,让我们执行以下命令。
dotnet pack
您现在可以看到 NuGet 包已在 bin 文件夹中生成;让我们打开 bin\Debug 文件夹。
现在的问题是 NuGet 包中包含什么内容,要了解这一点,我们可以使用 NuGet 包资源管理器。现在,让我们打开 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 源中发布它,然后我们才能在另一个项目中使用它。
发布更新的元数据有两种选择:
-
Publish it to nuget.org
-
将元数据推送到私有 NuGet 源
此处我们将使用私有 NuGet 源,因为它比在 nuget.org 上设置帐户容易得多。要了解如何将包发布到 nuget.org,你可以按照此处 https://docs.microsoft.com/en-us/nuget/create-packages/publish-a-package 指定的所有准则进行操作。
按照以下步骤将更新的元数据推送到私有 NuGet 源。
Step 1 - 首先,我们需要 nuget 命令行实用工具,并且我们必须将其安装。我们现在打开 NuGet Package Manager,并搜索 nuget.commandline。
Step 2 - 选择 Nuget.Commandline,然后单击 Install 。
Step 3 - 单击 OK 以安装 Nuget.Commandline。你还可以通过从以下网址 https://dist.nuget.org/index.html 下载它并设置环境变量来手动安装它。
Step 4 - 安装完成后,我们重新打开命令提示符并转到 bin\Debug 文件夹(NuGet 程序包位于此文件夹中),并指定以下命令:
nuget add StringLibrary.1.0.1.nupkg -Source D:\PrivateNugetPackages
Step 5 - 在以上命令中,我们将 StringLibrary.1.0.1.nupkg 程序包添加到我们的私有源,位置为 D:\PrivateNugetPackages , -Source 指定包源。
Step 6 - 你可以看到已安装 StringLibrary ;可以将 StringLibrary 进一步添加到私有源。
Step 7 − 让我们转到该文件夹。
Step 8 − 在 stringlibrary 文件夹的内部,你会看到另一个具有版本名称的文件夹,此处为 1.0.1。
NuGet 包位于此处。