为什么要使用控制台管理程序包而不使用程序包管理窗口?原因大家都懂,生活压力这么大,一切都只是为了装一波。开个玩笑,当然不只是此原因,在有些情况下,有些操作使用程序包管理窗口不能达到目的,只能使用控制台命令才能实现,比如说,安装特定版本的程序包。
控制台命令窗口
在安装有NuGet插件的VS上打开NuGet命令窗口的过程如下:依次选择菜单Tools(工具)->Library Package Manager(库程序包管理器)->Pakcage Manager Console(程序包管理器控制台)。
  • 程序包源:此下拉框可以选择要使用程序包源,默认选中 NuGet官方程序包源,当然你可以切换为自己公司内部使用的程序包源。
  • 默认项目:选择你想在哪个项目使用命令来工作,默认会自动选择第一个项目。
在使用控制台命令的过程中,很多命令的语法不需要硬背,可以随时使用get-help命令来查看帮助。

常用命令
  • Get-Package

可以使用Get-Package -ListAvailable来查看当前程序包源所有可用的程序包。

使用上述命令从NuGet官方程序包源中会获取到成千上万个程序包,如果想要查询特定的程序包,可以使用-Filter参数来进行过滤,如果我需要查找Common.Loggin程序包,那么可以使用Get-Package -ListAvailable -Filter Common.Logging (程序包名称或关键字)来进行查找,在NuGet 3.0+版本中,可以使用Find-Package命令来替换Get-Package命令。
如果不带任何参数,则可以查看当前解决方案已安装程序包列表:
  • Install-Package
当你使用Get-Package命令找到你想要安装的程序包之后,可以使用Install-Package packagename命令来安装程序包。比如使用Install-Pakcage Common.Logging来安装通用日志程序包:
NuGet在安装程序包的时候,会从指定的程序包源进行查找,同时会安装到选择的项目中(除非你使用参数另外指定)。程序包文件会下载到本地解决方案的packages目录下,同时,项目的app.config或web.config也有可能被更改。
如果要安装的程序包依赖于其他程序包,NuGet会同时下载并安装其所依赖的程序包。
  • Uninstall-Package
使用Uninstall-Package packagename可以移除当前选择项目的指定程序包。比如,Uninstall-Pakcage Common.Logging移除当前项目引用的Common.Logging程序包。
使用上述命令达到的结果:
  1. 项目引用:在解决方案资源管理器中,项目引用中的Common.Logging引用被删除
  1. packages目录:解决方案文件夹根目录下的packages目录下的Common.Logging文件夹被删除,如果packages下只有这一个目录,那么packages目录也将同时被删除;
  2. 配置文件:app.config或web.config文件中的更改被删除;
  • Update-Package
可以使用Get-Package -updates命令来查看当前已安装的程序包中是否有新版本可用:
如果想更新某个程序包,可以使用Update-Package packagename来更新指定程序包。
总结
本篇文章主要讲解了如何使用程序包控制台来进行简单的程序包管理,包括常用的查找、安装、删除及更新程序包功能。常用命令基本就是这么多,当然,本文对各个命令的应用只是其基本用法而已,如果需要更深层次的应用,可以使用Get-Help commandname来查看每个命令的详细用法,也可以直接查看官方说明文档
参考资料:

NuGet -- 使用控制台管理程序包的更多相关文章

  1. NuGet之控制台管理程序包

        NuGet作为VS的扩展程序,已经做好了UI,我们可以通过Manage NuGet Packages 的对话框.这里我们主要说说如何通过控制台进行包管理.使用命令行的方式,其实也是有其好处,对 ...

  2. 用Nuget部署程序包

    用Nuget部署程序包 Nuget是.NET程序包管理工具(类似linux下的npm等),程序员可直接用简单的命令行(或VS)下载包.好处: (1)避免类库版本不一致带来的问题.GitHub是管理源代 ...

  3. 使用NuGet加载包,发现加载的dll都是最新版,原来少加了参数[-Version]

    使用NuGet获取AutoMapper 发现无法正确加载包,项目版本是3.5,获取的dll版本较高,查资料发现可以通过 “-Version” 指定加载包版本 http://www.mamicode.c ...

  4. [Visual Studio] NuGet发布自定义包(Library Package)

    源文章:dax.net http://www.cnblogs.com/daxnet/archive/2013/05/07/3064577.html 使用NuGet发布自己的类库包(Library Pa ...

  5. NetCore入门篇:(三)Net Core项目Nuget及Bower包管理

    一.创建项目 1.如何创建项目,参照上一篇文章 二.程序包介绍 1.Net Core的程序包分前后端两种,后端用nuget,前端用bower. 2.与Net 不同,Net Core引用nuget包时, ...

  6. [nuget]VS中包管理器打开后找不到其它工程的问题

    今天新建工程做小组内用的工具,打算做个winform的项目, 用vs新建了winform项目,简单分下层吧,又加了两个类库项目, 然后,要用到的包需要nuget安装,于是发生这个问题: [VS]在so ...

  7. NuGet安装本地包命令行

    尝试安装本地的NuGet包. 键入 "get-help NuGet" 可查看所有可用的 NuGet 命令. install-package Polly.Net40Async-Sig ...

  8. NuGet修改默认包保存的位置

    NuGet默认的全局包下载地址一般为:C:\Users\{username}\.nuget\packages 修改方法: <?xml version="1.0" encodi ...

  9. Anaconda系统中管理程序包(Package)

    列出所有已安装的程序包 conda list 在已安装的程序包中查找某个特定的程序包 conda search package-name 安装程序包 conda install beautiful-s ...

随机推荐

  1. .NET研发人员面试题(一)

    1.简述javascript中的“=.==.===”的区别? =赋值 ==比较是否一般相等   "3"==3 //会做类型的隐式转换,true ===比较是否严格相等 " ...

  2. asp.net mvc上传头像加剪裁功能介绍

    正好项目用到上传+剪裁功能,发上来便于以后使用. 我不能告诉你们其实是从博客园扒的前台代码,哈哈. 前端是jquery+fineuploader+jquery.Jcrop 后台是asp.net mvc ...

  3. 学习PYTHON第一天

    需要掌握的内容 1.编程语言 2.python   .  C#   JAVA 3.python:  pypy    cpython     jpython 4.执行方式 解释器 文件执行 5.指定解释 ...

  4. ASP.NET 学习小记 -- “迷你”MVC实现(2)

    Controller的激活 ASP.NET MVC的URL路由系统通过注册的路由表对HTTO请求进行解析从而得到一个用户封装路由数据的RouteData对象,而这个过程是通过自定义的UrlRoutin ...

  5. poj 1113 Mall

    Mall 水题:注意题目上面有一个至少离城堡的距离为L,其实思考一下就知道是指离凸包(凸多边形)的距离为L,这时很容易知道外围的圆的圆心角叠加之后就是一个整圆:和poj2187一样使用graham形成 ...

  6. thinkphp 框架的学习(1) 扩展配置文件

    在config.php里面写入 1:'LOAD_EXT_CONFIG' => array('SETTINGS' => 'settings'); 系统会判断是否有参数:LOAD_EXT_CO ...

  7. 一步步学习NHibernate(6)——ISession的管理

    请注明转载地址:http://www.cnblogs.com/arhat 今天老魏那个汗啊,我的ThinkPad的电源线不通电了,擦啊.明天还得掏银子买一个!心疼啊,原装的啊.不过话说回来,已经用了将 ...

  8. Javascript编程模式(JavaScript Programming Patterns)Part 2.(高级篇)

    模块编程模式的启示(Revealing Module Pattern) 客户端对象(Custom Objects) 懒函数定义(Lazy Function Definition) Christian  ...

  9. Ubuntu下与菜单和图标相关的几个文件夹

    转自UBUNTU下与菜单和图标相关的几个文件夹 /usr/share/icons  系统图标文件夹 /usr/share/applications  系统菜单文件夹,要在左上角的应用程序菜单中添加一项 ...

  10. .NET(C#):灵活运用CryptoStream,加密不是必须用CryptoStreamMode.Write

    首先.NET中的ICryptoTransform是单向的,也就是只能从一个状态将数据转化成另一个状态,反之是不可以的.当然手动 操作ICryptoTransform还是比较繁琐的,通过CryptoSt ...