首先,就NuGet的存在形式来说,它是Visual Studio的扩展(Extension)。
然后,就NuGet的功能来说,它是用来管理包(package)的工具,那么什么是包,即后缀名是nupkg的文件,而这个文件是专门为NuGet定制的。这样还是不能说明NuGet的作用,为了阐明NuGet的作用,就要了解包的概念。使用.NET开发,我们不可避免的要使用一些组织内部或外部开发的类库,而我们一般的做法是把dll文件拷贝到本地,然后在Visual Studio中添加引用(Reference),有的时候要让类库可以正常使用还要配置app.config或web.config文件。这些工作有点繁琐,为了简化这个过程,NuGet就出现了。而包中就包含了要拷贝的文件(一般是dll,但不限于此)、一个文件清单(Manifest,描述包的内容)、要做事情的一个列表。这样,只要我们安装一个包,就能把拷贝文件,添加引用,修改配置文件这些工作都自动化的做了,很是方面。
最后,就NuGet的组成来说,它由客户端(Client)和Gallery组成。客户端就是 .vsix文件。Gallery是一个仓库,存放由世界各地的人开发的公用的包的仓库。