当你一直都在做小项目的时候,可能你永远也不会使用到NuGet工具。NuGet用于管理第三方的组件(无论是库还是工具),只需要建立一个NuGet
Package的包,建在NuGet的站点上,就做到了共享便捷,更新同步的工作!类似于云,共享一片天空,而且是同一片云!对于NuGet的解释,专业的说法是:NuGet是一个.NET平台下的开源的项目,是Visual
Studio 扩展,它能够简化在 Visual Studio 项目中添加、更新和删除库(部署为程序包)的操作。 NuGet 产品也同样能够轻松创建和发布程序包的实用工具。不得不感叹微软的强大,net平台的伟大,接下来就带大家一起来看看NuGet能为我们做什么?
从一件事情的发展顺序来说,NuGet是用来管理项目库(下面的我统一称为程序包。NuGet
程序包是打包成一个文件的文件集,扩展名是 . nupkg,使用开放打包约定(OPC) 格式)的,那么首先,程序包是应该放到哪里的呢?
1.程序包放哪里?
默认的:它们位于 nuget.org 的官方 NuGet 程序包库中。 此库公开了一个 OData 源:packages.nuget.org/v1/FeedService.svc。
一般在NuGet官网注册一个账号,验证后可获得一个API Key,它就是以后我们用来发布程序包的APIKey。
还有一种情况,自己搭建NuGet服务器,发布后,然后在VS中添加本地站点到包包数据源。自己全权管理自己的程序包。不借助于第三方平台。(推荐一篇博客,图文并茂的讲解如何搭建自己的NuGet服务器的文章《NuGet学习笔记(3)——搭建属于自己的NuGet服务器》)
2.程序包从哪里来?
一部分是微软和其他用户提供的,但是显然,尤其是在一个企业中,都有自己的一套标准规范和类库,更具有个性化的特点,这个时候,这个程序包就是从企业内部自己生成出来的。在这里简单的说一下程序包的创建和发布过程。
- 创建一个类库项目。
- 从项目生成 NuSpec 清单(nuget
spec)。 - 更新项目的程序集元数据(此信息通常位于名为 AssemblyInfo.cs 的文件中)。
- 使用 NuGet.exe 创建程序包(nuget
pack ProjectName.csproj)。
3.发布程序包
我们根据自己的密钥,将自己的程序包发布到库上,让全世界的人都可以看到。
- 使用命令将其存储在安全的位置(nuget setApiKey b688a925-0956-40a0-8327-ff2251cf5f9a)
- 存储密钥后,使用 push 命令将程序包发布到库(nuget
push ProjectName.1.0.0. nupkg)
有一点需要注意,如果后期类库更改了,我们只需要再次创建程序包pack,再次发布push就可以了(注意版本号的更改)。
4.使用程序包
在自己的程序中安装和更新程序包即可。网上教程很多,也很简单,在这里就不具体举例了。(《使用NuGet 管理项目库》这篇博客特别好,我也参照了部分,推荐给大家)
(PS:另外刚才做的操作都可以在NuGet的控制台用命令符操作,这里不举例)