这节来讲一下.NET下的包管理平台:NuGet。

我们做一个项目,除了自己的代码文件之外,实际上还要引用诸多代码文件,这些文件可能是我们自己封装的底层框架代码,或者为了完成某个功能而引用的工具类文件等等。在.NET里边,这些可被引用的,负责完成某个可复用功能的代码,我们可以封装为动态链接库(Dynamic Link Library,.dll),也可以通俗说打包,在需要的地方,我们把这个包引用到项目中,就可以使用其功能。NuGet就是一个专门管理这些包的平台,所有开发者可以将自己的优秀代码打包上传到这个平台,供全球开发者使用。并且,在这个平台上,我们可以查看到这个包的依赖,比如这个包依赖.NET Framework 4.5的环境,那我们就知道自己的项目可不可以使用这个包,或者这个包可以还要依赖一些另外的包,我们可以清楚的了解到这一整个层级关系。

我们可以访问:www.nuget.org,来进入NuGet网站,从中搜索自己需要的包。

以QRCoder这个包为例子(www.nuget.org/packages/QRCoder)。我们可以看到它支持哪些框架,以及如何通过命令行的形式将其引用到项目中(我们稍后演示),点击中间这些页签可以查看其具体支持的框架版本,依赖及它自己的发布版本历史等等。同时在右侧这一栏中,可以看到项目网站,源代码链接,开源许可等等。通过网站中这些信息,我们可以更好地去判断自己的项目是否可以放心的使用这个包。

VisualStudio支持通过图形界面和命令行两种形式来使用NuGet引入自己需要的包,下面来为大家演示一下:

  • 图形界面

我们可以在项目或者解决方案上点击鼠标右键,在弹出菜单中选择“管理NuGet包”进入NuGet包管理图形界面。

我们还是以QRCoder包为例子,如果从解决方案右键进入此界面,点击这一条后,右侧会显示该解决方案下所有的项目,您需要选择至少一个项目,指定哪个项目要使用这个包,同时在项目选择框下方,您可以选择要引用的版本(系统默认最新稳定版),然后点击“安装”按钮,系统开始下载并自动安装该包,安装时,系统会自动将这个包的依赖一并下载安装,我们静待安装完成即可。
    安装以后,安装按钮上方的卸载按钮会被激活,如果经测试该包的功能不合适自己的项目,您可以回到此点击卸载。对于已安装的包,您可以在“已安装”这个页面查看或者在双击项目名称在配置文件中查看:

如果被引用的包出现了新版本,您可以在“更新”页面查看,是否更新,可以您自行判断。

  • 包管理器命令行

您可以通过以下两种方式打开包管理器命令行:

点击后,会在VS页面底部弹出命令行界面:

另外,您可以指定要包的来源(Package source)和要引用的项目(Default project):

对于包的来源,您也可以点击后边的小齿轮按钮,自定义来源,对于某些在公司内部共享的包,您可以通过此界面来配置为公司内部NuGet网站:

您可以使用以下三种命令来完成包的安装,更新和卸载:

Install-Package 包名 [-Version 版本号] //安装
Update-Package 包名 [-Version 版本号] //更新
Uninstall-Package 包名 //卸载

这个方式也比较简单,在NuGet网站中,每个包的主页也能看到这些命令,您可以直接复制:

NuGet包管理平台的更多相关文章

  1. 详解.Net 如何上传自己的包到Nuget平台以及如何使用Nuget包管理器

    首先需要一个Nuget账户,可以在官网注册:https://www.nuget.org.已有账户略. 需要一个ApiKeys,登录之后,在我的账户里找到ApiKeys进去; 创建ApiKeys 下载N ...

  2. .NET持续集成与自动化部署之路第二篇——使用NuGet.Server搭建公司内部的Nuget(包)管理器

    使用NuGet.Server搭建公司内部的Nuget(包)管理器 前言     Nuget是一个.NET平台下的开源的项目,它是Visual Studio的扩展.在使用Visual Studio开发基 ...

  3. nuget 包管理器

    nuget 是.Net平台上的包管理器, 对于包的发布(打包 package)和消费(下载依赖管理)都有很好的支持, 本文仅仅关注消费端, =======================nuget项目 ...

  4. nuget包管理器控制台下的powershell脚本介绍

    http://personball.com/powershell/2016/07/15/powershell-tips 定制自己的powershell,减少重复工作 安装一系列自己的常用nuget包 ...

  5. [2016-07-15]nuget包管理器控制台下的powershell脚本介绍

    博客有阵子没打理了,今天刚恢复样式,但是标题还是不太正常,总算能凑合看看. 回到正题,最近为了能在VS的程序包管理器控制台上能方便的自定义ps脚本去调整project的package,就开始看powe ...

  6. 华为云提供针对Nuget包管理器的缓存加速服务

    在Visual Studio 2013.2015.2017中,使用的是Nuget包管理器对第三方组件进行管理升级的.而且 Nuget 是我们使用.NET Core的一项基础设施,.NET的软件包管理器 ...

  7. C# NuGet包管理命令

    NuGet Package Manager Console 内置于 Visual Studio 在 Windows 2012 和更高版本. (不包含在 Visual Studio 用于 Mac 或 V ...

  8. Visual Studio 2013 更新 NuGet 包管理器

    Ø  前言 使用 Visual Studio 中的 NuGet 包管理器下载程序时,有时可能出现类似的错误:. 5.   在"联机"选项中搜索"NuGet",选 ...

  9. 当通过Nuget包管理器获取还原组时,出现 提示 “xxxxx”已拥有为“xxxxx”定义的依赖项

    当通过Nuget包管理器获取还原组件时,出现  提示 “xxxxx”已拥有为“xxxxx”定义的依赖项 时 解决方法: 工具---扩展和更新,把Nuget包管理器卸载后,重启VS,再安装,现打开VS项 ...

随机推荐

  1. Myql 中的事务回滚机制概述 ?

    事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个 不可分割的工作单位,事务回滚是指将该事务已经完成的对数据库的更新操作撤 销.要同时修改数据库中两个不同表时,如果它们不是一个事务 ...

  2. 为什么要用Spring

    1.方便解耦,简化开发 通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合.有了Spring,用户不必再为单实例模式类.属性文件解析 ...

  3. Bootstrap Javascript组件,模态框级联open解决方案

    <script type="text/javascript"> top.global={zIndex:null}; $("body>div[data-m ...

  4. ARM指令集详解--汇编

    1.       汇编 1.1.    通用寄存器 通用寄存器 37个寄存器,31个通用寄存器,6个状态寄存器,R13堆栈指针sp,R14返回指针,R15为PC指针, cpsr_c代表的是这32位中的 ...

  5. AD软件Bug和自我失误的对战

    说说我近期犯的两大过失,让我无语的过失,要购买重大责任险呀 一大过失:上图,看了下面的图想必大家都明白了,TOP层元件只有位号和焊盘,丝印边框哪去了? 别急,在这里,下图 为何他跑这里来了呢?我尝试了 ...

  6. Vue.js 开发实践:实现精巧的无限加载与分页功能

    本篇文章是一篇Vue.js的教程,目标在于用一种常见的业务场景--分页/无限加载,帮助读者更好的理解Vue.js中的一些设计思想.与许多Todo List类的入门教程相比,更全面的展示使用Vue.js ...

  7. 如何形成一个完整的HTML对象

    写在前面,本文将同步发布于Blog.掘金.segmentfault.知乎等处,如果本文对你有帮助,记得为我得到我的个人技术博客项目给个star哦. 为何写这篇文章? 你可能做Web开发已经有一段时间, ...

  8. js判断是否为电话号码

    /* 用途:检查输入字符串是否符合国内固话或者传真格式 输入: s:字符串  格式例如:030-4557777返回: 如果通过验证返回true,否则返回false */ function isTel( ...

  9. 小程序picker的使用

    效果图: 代码: <view class='infoItem'> <view class='infoItem-left'><text style='color:red'& ...

  10. 导入,导出excel

    /// <summary> /// 导出数据 /// </summary> /// <param name="XMMC"></param& ...