
6.9 NuGet包
一个慢慢融入.NET的变化是把NuGet作为部署组件的平台。NuGet是一个开源平台,允许.NET组件以及用C++编写的本地组件,方便、自动地分发到开发平台。在Visual Studio 2015中,这种对NuGet的依赖已经变成使用NuGet处理所有的部署工作,包括.NET Framework。幸运的是,可以通过Visual Studio 2015中的一些机制来访问NuGet。
组件的开发人员应把安装软件需要的所有信息打成为一个包(保存在一个.nupkg文件中)。包含在包中的组件是需要部署的程序集和一个清单文件,该清单文件描述了包的内容,以及需要在项目中进行什么修改来支持组件(修改配置文件、添加引用等)。
6.9.1 NuGet包管理器
把一个包从NuGet带入项目有两种主要方法。尽管用户的偏好可能取决于自己偏爱的命令行或图形界面,但最常见的方法涉及集成到Solution Explorer中的NuGet包管理器。在Solution Explorer中,右击项目,并选择Manage NuGet Packages选项,就会显示如图6-28所示的页面。通过Solution菜单选项中的Tools | NuGet Package Manager | Manage NuGet Packages,可以显示类似的页面。

图6-28
页面的元素用于帮助找到需要添加到项目中的包。右边的搜索框可以搜索NuGet存储库。左边的控件可以选择存储库源。可用的选项是nuget.org、preview.nuget.org(包含组件的预览版本)和Microsoft。另外,可以过滤搜索的结果,只显示已安装的包和带有更新的包。
选择要包含在项目中的包。包的细节出现在页面右侧的面板中。单击Install按钮可以安装包。如果希望看到因为安装包而进行的修改,可以单击Preview按钮。
这个页面上最后一个可用的功能可以通过搜索框右边的齿轮图标来启动。单击齿轮图标,会启动Options对话框,并显示NuGet Package Manage面板,如图6-29所示。

图6-29
如图6-29所示的屏幕的主要功能是允许配置Package Manager搜索到的NuGet存储库。要添加新的存储库,可以单击对话框右上角的加号按钮,然后更新页面底部的Name和Source字段。
6.9.2 Package Manager Console
通过Tools | NuGet Package Manager | Package Manager Console菜单项,可以访问用于管理NuGet包的命令行界面。屏幕如图6-30所示。

图6-30
这里的挑战是了解可用来帮助管理包的各种命令。最基本的命令是install-package安装包,它把包的名称作为一个参数。命令的完整列表超出了本书的范围。如图6-30中的描述所示,get-help NuGet提供的列表是一个不错的开始。