NuGet作为VS的扩展程序,已经做好了UI,我们可以通过Manage NuGet Packages
的对话框。这里我们主要说说如何通过控制台进行包管理。使用命令行的方式,其实也是有其好处,对于比较熟悉linux系统的同学就深有体会,命令行操作,灵活度很大,操作更加编辑等等。NuGet的控制台使用的是PowerShell命令行,如果在没有打开解决方案的情况下,那我们就只能通过PowerShell命令行进行程序包的安装了。

下面我们就来看看NuGet在命令行下的一些基本操作(本人使用的是VS2015 企业版中文版)。

NuGet查找程序包

打开"工具"(Tool)菜单,选择"NuGet包管理器",点击"程序包管理器控制台"。

 

这样就打开了程序包管理器的控制台窗口

 

下面我们就可以在命令行中输入命令进行操作了。在控制台的命令行中,可以输入Get-Package –ListAvailable 获取所以可以使用的程序包列表,下面和大家说个小技巧,使用过linux的同学都知道,在命令行中,我们很多时候都不需要输入完整的命令,而是在输入输入部分字母后,按Tab键进行自动补全,NuGet同样也有这样的功能,例如本例,我们输入Get-P,然后按下Tab键,然后就会自动补全完整的Get-Package命令,如果只是输入Get的情况下按Tab键, 则会列出所有可能的命令,这个就类似有VS的智能提示功能。

 

下面我们尝试输入命令Get-Package –ListAvailable,就可以看到可以使用的程序包列表,这里提醒下,-ListAvilable是命令的条件,目的是告诉命令应该执行什么样的动作,同样也支持按下Tab键进行智能提示和自动补全功能。

    

    上面的命令会输出全部的可用的程序包,如果我们选查找自定的程序包,怎么办呢?我们可以在命令行中输入Get-Package –
然后按下tab键,此时就列举出了所有的命令条件列表

    

    其中第一个 –Filter就用来筛选指定条件的的程序包,在-Filter后空格输入程序包的关键字,即可查询符合条件的程序包

我使用的是NuGet 3.3.x版本,命令行提示,新版(NuGet客户端3.0 Beta版或更高版本)可以使用 Find-Package [–Id] 查询指定条件的程序包,咱们也来试一下效果:

使用过Linux的同学都知道,很多命令我们不需要强行去记住怎么使用,因为提供强大的使用文档,只有键入 man 命令,就让输入命令的详细使用说明,那么NuGet也是一样的,如果我们想知道某个命令的详细使用,只要我们使用命令Get-Help就可以,例如在命令行中输入Get-Help Get-Package,这样就会输入Get-Package命令的详细使用说明(第一次使用Get-Help时,需要在线安装帮助文档,按照命令输入的提示操作,就可以正常安装)

 

 

NuGet安装程序包

当我们找到要安装的程序包是,下面我们就可以使用Install-Package命令,后面加上程序包名称,进行安装,例如Install-Package Log.dll。

这里需要注意的时,我们安装程序包,是要安装到某个解决方案里面,如果没有打开解决方法,进行安装时,就会报错

 

NuGet从指定的程序包源中(如上图的nuget.org)获取程序包,然后安装到选择的项目中(如上图的 WpfApplication1)。程序包的文件被复制到解决方法中,在解决方法的根目录中创建一个新的packages文件夹存放,然后自动为项目添加上引用,项目的app.config或者web.config有时候也会被自动更新。

NuGet移除程序包

如果我们不知道自己需要卸载的程序包名称的话,可以直接使用Get-Package命令获取已经安装的程序包,这里要注意和查询源中可用程序源的区别。

下面我们就可以使用Uninstall-Package命令加上包名移除该程序包,例如Uninstall-Package MahApps.Metro.Resources

移除就是安装的逆向过程,删除引用,删除文件,删除配置等

 

NuGet更新程序包

我们可以使用Get-Package –Updates命令获取需要更新的程序包列表

然后使用命令Update-Package 加上程序包ID进行程序包更新

 

 

 

    最后,说明下,这个是个人真正意义上开始写的第一个技术博客,希望自己记录下的东西,对自己,和对技术同仁有那么一点帮助!

 

最新文章

  1. selenium web driver 实现截图功能
  2. 20151023 - discuz 6 中 insenz 营销推广失效的问题
  3. knockout之入门介绍
  4. javascript prototype和__proto__
  5. shell中的内建命令, 函数和外部命令
  6. 利用纯java捕获和播放音频
  7. Java 初始化的个人理解
  8. javascript拾遗
  9. python 函数部分
  10. 改变oracle数据库归档模式_译文
  11. Zigbee Class 直播公告2016-10-10
  12. Android实用代码七段(二)
  13. Hibernate(十四):HQL查询(三)
  14. Linux 高性能服务器编程——高性能服务器程序框架
  15. Pytorch系列教程
  16. vue elementUI enter 回车 (转载)
  17. POJ 3537 multi-sg 暴力求SG
  18. Odoo中如何复制有唯一性约束的记录?
  19. NEU 1496 Planar map 计算几何,点到线段距离 难度:0
  20. 【POJ 2186】Popular Cows

热门文章

  1. ftp和sftp
  2. android测试开发环境搭建
  3. 2017.10.3 QBXT 模拟赛
  4. 多目标检测分类 RCNN到Mask R-CNN
  5. HTML5新增的音频标签、视频标签
  6. springboot(二十一)-集成memcached
  7. python_92_面向对象初体验
  8. OO作业第三单元总结
  9. 判断用户ip是否在指定的一个ip段内
  10. shell脚本,awk取奇数行与偶数行方法。