为什么要使用控制台管理程序包而不使用程序包管理窗口?原因大家都懂,生活压力这么大,一切都只是为了装一波。开个玩笑,当然不只是此原因,在有些情况下,有些操作使用程序包管理窗口不能达到目的,只能使用控制台命令才能实现,比如说,安装特定版本的程序包。
控制台命令窗口
在安装有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. 第二章 Qt常用工具的介绍

    第二章 Qt常用工具的介绍 (1)No.1 qmake 相信编写过Makefile的开发人员,随着工程中源码的级数递增和以类型.功能.模块组织源码的子目录的增多,都不愿意重复机械地手工编写这个工程管理 ...

  2. web页面背景色控制

    有一道题要实现输入rgb数值,实现更换页面背景色的功能,如下图所示: 答案: <html> <head> <script type="text/javascri ...

  3. 51nod1079中国剩余定理

    /** *中国剩余定理 */ #include<iostream> #include<cstdio> #include<map> #include<cstri ...

  4. PHP 向 MySql 中数据修改操作时,只对数字操作有效,非数字操作无效,怎么办?

    问题描述:   用PHP向MySql数据库中修改数据,实现增删改(数据库能正确连接) 经测试,代码只能对数字进行正常的增删改操作,非数字操作无效   但要在课程名称中输入中文,应该如果修改呢?   存 ...

  5. Maven插件实现的autoconfig机制(转)

    autoconfig这种机制在软件开发和发布的过程中是非常方便也是非常必要的一种动态替换配置信息的一种手段,一种很贴切的比喻:这个就像在windows下面安装一个软件时,我们按照安装向导给我们弹出提示 ...

  6. hive 存储格式

    hive有textFile,SequenceFile,RCFile三种文件格式. textfile为默认格式,建表时不指定默认为这个格式,导入数据时会直接把数据文件拷贝到hdfs上不进行处理. Seq ...

  7. Substring的简单使用

    string myString = "测试一下函数Substring()是怎么用的"; //Substring()在C#中有两个重载函数 //分别如下示例 //如果参数为一个长整数 ...

  8. jquery upload

    http://blueimp.github.io/jQuery-File-Upload/ https://github.com/blueimp/jQuery-File-Upload/wiki Back ...

  9. Python属性、方法和类管理系列之----__slots__属性

    一句话说明 __slots__是用来限制实例的属性的,__slots__可以规定实例是否应该有__dict__属性:__slots__不能限制类的属性. 只有__slots__列表内的这些变量名可赋值 ...

  10. SpringMVC的controller方法中注解方式传List参数使用@RequestBody

    在SpringMVC控制器方法中使用注解方式传List类型的参数时,要使用@RequestBody注解而不是@RequestParam注解: //创建文件夹 @RequestMapping(value ...