什么是nuget
适用于任何现代开发平台的基本工具可充当一种机制,通过这种机制,开发人员可以创建、共享和使用有用的代码。 通常,此类代码捆绑到“包”中,其中包含编译的代码(如 DLL)以及在使用这些包的项目中所需的其他内容。
对于 .NET(包括 .NET Core),共享代码的 Microsoft 支持的机制则为 NuGet ,其定义如何创建、托管和使用面向 .NET 的包,并针对每个角色提供适用工具。
简单来说,NuGet 包是具有 .nupkg 扩展的单个 ZIP 文件,此扩展包含编译代码 (Dll)、与该代码相关的其他文件以及描述性清单(包含包版本号等信息)。 使用代码的开发人员共享创建包,并将其发布到公用或专用主机。 包使用者从适合的主机获取这些包,将它们添加到项目,然后在其项目代码中调用包的功能。 随后,NuGet 自身负责处理所有中间详细信息。
由于 NuGet 支持公用 nuget.org 主机旁边的专用主机,因此,可以使用 NuGet 包来共享组织或工作组专用的代码。 此外,你还可以使用 NuGet 包作为一种便捷的方式,将自己的代码用于除你自己项目之外的任何其他项目。 简而言之,NuGet 包是可共享的代码单元,但不需要暗示任何特定的共享方式。
使用 vs2017 创建 NuGet 包
创建类库项目
写一个示例类
using System;
namespace nugetpackdemo
{
public class Sample
{
public string HellowNuget()
{
return "HellowNuget";
}
}
}
配置包属性
- 在解决方案资源管理器中右键单击该项目,然后选择“属性” 菜单命令,然后选择“包” 选项卡。
- 为包提供一个唯一标识符,并填写任何其他所需的属性。
对于面向公共使用而生成的包,请特别注意 Tags 属性,因为这些标记可帮助其他人查找包并了解其用途。
运行 pack 命令
- 将此配置设置为“发布” 。
- 请在“解决方案资源管理器”中右键单击该项目,然后选择“Pack”命令:
(可选)在生成期间生成包
可以将 Visual Studio 配置为在生成项目时自动生成 NuGet 包。
在“解决方案资源管理器”中,右键单击项目,然后选择“属性” 。
在“包”选项卡中,选择“在生成期间生成 NuGet 包” 。
注意
自动生成包时,打包时间会增加项目的生成时间。
发布包
有了 .nupkg 文件后,可以使用 nuget.exe CLI 或 dotnet.exe CLI 以及从 nuget.org 获取的 API 密钥将其发布到 nuget.org。
登录你的 nuget.org 帐户,或创建一个帐户(如果你还没有帐户)。
选择用户名(在右上角),然后选择“API 密钥”。
选择“创建” ,提供密钥名称,选择“选择范围”>“推送” 。 输入“Glob 模式” *,然后选择“创建” 。 (请参阅下面有关范围的详细信息。)
-
创建密钥后,选择“复制”,检索需要在 CLI 中使用的访问密钥 :
使用 dotnet CLI 发布
在发布包之前,必须先打开命令行。
- 更改到包含 .nupkg 文件的文件夹。
cd bin\Release
- 运行以下命令,指定包名称(唯一包 ID)并使用你的 API 密钥替换密钥值:
dotnet nuget push sandsnugetpackdemo.1.0.0.nupkg -k {{API秘钥}} -s https://api.nuget.org/v3/index.json
- dotnet 会显示发布过程的结果:
管理发布的包
登录 https://www.nuget.org/ 查看自己上传的包就可以了