【ASP.NET MVC系列】浅谈NuGet在VS中的运用
ASP.NET MVC系列文章
【02】浅谈Google Chrome浏览器(操作篇)(上)
【03】浅谈Google Chrome浏览器(操作篇)(下)
【04】浅谈ASP.NET框架
【07】浅谈ASP.NET MVC 路由
【08】浅谈ASP.NET MVC 视图
【10】浅谈jqGrid 在ASP.NET MVC中增删改查
【13】浅谈NuGet在VS中的运用
【14】浅谈ASP.NET 程序发布过程

一 概述
在我们讲解NuGet前,我们先来看看一个例子。
1.例子:
假设现在开发一套系统,其中前端框架我们选择Bootstrap,由于选择Bootstrap作为前端框架,因此,在项目中,我们需要引入Bootstrap相关文件,大致会执行如下操作。
步骤一:下载Bootstrap文件
输入Bootstrap官网域名 http://v3.bootcss.com/
输入域名,进入官网

步骤二:选择合适的版本,下载Bootstrap包

步骤三:将包引入到项目中

关于将Bootstrap包引入到Project中,过程似乎比较麻烦,更可怕的的是,当在项目中的Bootstrap包需要更新时,需要做重复的工作,这是非常繁琐的,很好的是,VS自带的NuGet包管理器很好地
帮助我们解决了此类问题。
2.何为Nuget包管理器?
对于.NET和VS而言,NuGet是一个.NET包管理系统,它可以很容易地响应运用程序中添加、更新和删除外部库文件及其依赖。
除此之外,我们可以通过创建包,发布包实现包之间的共享,使共享得以实现。
站在微软的角度:要尽可能地尝试,不要指望Microsoft为我们提供所需要的每一段代码,在.NET平台上进行开发的开发人员多大数百万甚至上千万,而每一个开发人员都有其独特的技术和有待解决
的问题,等待Microsoft去解决每个开发人员的每个问题,既形不成规模,也没有意义。值得庆幸的是,他们可以通过网上发布的一些库莱解决他们或他们客户遇到的问题。然而,面对网上的这些有
用的库我们面临三大挑战:发现,安装和维护。但庆幸的是,NuGet却很好地解决了此类问题。
二 将包添加到库
将包添加到库,有许多方式,常用方式为Manage NuGet Package 和 Package Manager Console,下面将结合VS2017和基于ASP.NET MVC模板讲解该两种方式。
(一)Manage NuGet Packages
1.准备好VS2017开发环境,并用VS的MVC模板创建一个默认项目:NuGetDemo

分析:
细心的你会发现,在上图中出项了packages.config文件,其实,它就是NuGet包的配置文件,因为我们在选择基于MVC模板创建项目时,默认的引入了第三方库文件,如Bootstrap,Jquery等;

2.打开NuGet包管理器
引用=>管理Nuget程序包

3.打开NuGet包管理器后,我们可执行如下操作
(1)浏览包 (2)查看当前系统已安装包 (3)更新包 (4)在搜索框中搜索包

4.查看包的详细信息
我们以log4net为例

分析:
包的基本信息

5.安装
在安装AnyLog.Log4Net之前,先选择好安装版本,然后再安装。

6.查看安装情况
(1)查看控制台输出安装信息情况

(2)查看NuGet包已安装情况

(3)查看项目引用情况

(4)查看packages.config文件

7.更新包
NuGet包管理器不仅能帮助我们安装包,而且还能帮助我们维护包,我们可以借助NuGet包管理器来更新包。
注意:当我们更新包时,这个操作也会更新该包的所以依赖,以确保只安装依赖的兼容保本。
在以下例子中,我们在项目NuGet中安装了Log4net 2.0.3版本,现在,我们将其更新都最新版本2.0.8,选择“更新”。

点击确认。
注意,此步会更新运用程序中与Log4net相关所有内容。

查看更新结果

8.包恢复
NuGet默认的工作流程是把包文件夹提交到版本控制,这样做的一个好处是可从版本控制检索解决方案,以确保构建解决方案的每个包都能够安装,而且这些包还不需要从其他位置检索。
但是,这样做也是有弊端的,Packages文件夹不是VS解决方案的一部分,因此,通过VS集成管理版本控制的开发人员需要进行一个额外的步骤以确保Packages文件夹能够提交。
(1)TFS可以自动提交Packages文件夹
(2)分布式版本控制系统(如Git),不建议把Packages文件夹提交到版本控制,因为分布式版本控制系统不擅长处理二进制文件,如果项目中大量的包都有变化,分布式版本控制系统库就会
变得很庞大。
可喜的是,NuGet 1.6引入的包修复功能来处理这些问题,这样就支持一个新的个工作流程,我们就不需要把Packages文件夹提交到源代码控制了。
这个过程需要手动执行几个步骤:对每个项目都需要执行单独的一步操作,以启用包恢复(在NuGet2.0~2.6中,每个开发人员还需要配置VS来允许包恢复)
注意:
现在NuGet包恢复时自动启用的,但是在VS的Package Manager设置中使用下面两个选项,可以禁用包恢复功能:
a.允许NuGet下载缺少包;
b.在VS中构建运用程序时,自动检查缺少的包;
通过NuGet 2.7 自动包恢复功能。
(二)Package Manager Console
Package Manager Console是Visual Studio 中基于PowerShell的控制台,不仅提供了强大的功能来查找和安装包,而且还支持Manager NuGet Packages对话框不支持的一些功能。
1.启动控制台
工具=>NuGet包管理器=>程序包管理器控制台

2.查看当前项目已安装的包
在控制台中输入Get--Package,可以查看当前项目已安装的包

拓展:
(1)以前版本,可以通过以下命令来过滤包
Get-Package -ListAvailable -Filter Route

(2)可以采用如下命令代替Get-Package -ListAvailable -Filter 命令
Find-Package [-Id]

3.安装包
在控制台中通过:Install-Package 包名
下图中,我们在项目中安装Log4net,因此输入Install-Package Log4net,由于我已在项目中安装了Log4net,因此提示已经安装。

拓展:
(1)PowerShell命令的支持扩展功能,相当于智能感应。输入命令部分字符,按Tab键就可以查看输入的内容,从而实现智能感应。

(2) PowerShell支持复合命令,比如通过将一个命令管道传输到另一个命令。
如下命令向解决方案中每一个项目安装一个包。
Get-Project -ALL | Install-Package log4net

(3)PowerShell也支持动态添加新命令
PowerShell强大之处在于,安装的一些包可以为shell添加新命令。

(三)其他方式启动NuGet
如在项目名称中添加,这里不论述,核心内容还是在如上的(一)和(二)部分。

4.关于包源和项目的选择
通过选择程序包源右边的齿轮,即可查看该包及对包的基本操作

5.NuGet包管理器概述
(1)NuGe包管理器基本界面
在控制台操作中,由两大部分组成:常规和程序包源

(2)程序包源概述

拓展:
在Manage NuGet Packages 操作包方式中,与如上对应的操作

例子讲解:
下面我们讲解基于如上两种模式添加autofac包的操作过程
Manage NuGet Packages 方式

控制台操作方式
(1)找到autofac包的NuGet地址

(2)添加autofac包

三 创建包
篇幅有限,以后专门写一篇文章概述......
四 发布包
篇幅有限,以后专门写一篇文章概述......
五 参考文献
【01】ASP.NET MVC5 高级编程(Jon Galloway,Brad Wilson,K.Scott Allen,David Matson ,孙远帅 译)
六 版权区
- 感谢您的阅读,若有不足之处,欢迎指教,共同学习、共同进步。
- 博主网址:http://www.cnblogs.com/wangjiming/。
- 极少部分文章利用读书、参考、引用、抄袭、复制和粘贴等多种方式整合而成的,大部分为原创。
- 如您喜欢,麻烦推荐一下;如您有新想法,欢迎提出,邮箱:2016177728@qq.com。
- 可以转载该博客,但必须著名博客来源。
【ASP.NET MVC系列】浅谈NuGet在VS中的运用的更多相关文章
- 【ASP.NET MVC系列】浅谈表单和HTML辅助方法
[01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作篇)(下) [04]浅谈ASP. ...
- 【ASP.NET MVC系列】浅谈ASP.NET MVC八大类扩展(上篇)
lASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操 ...
- 【ASP.NET MVC系列】浅谈ASP.NET 页面之间传值的几种方式
ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...
- 【ASP.NET MVC系列】浅谈ASP.NET MVC运行过程
ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...
- 【ASP.NET MVC系列】浅谈ASP.NET MVC 视图
ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...
- 【ASP.NET MVC系列】浅谈jqGrid 在ASP.NET MVC中增删改查
ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...
- 【ASP.NET MVC系列】浅谈ASP.NET MVC 视图与控制器传递数据
ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...
- 【ASP.NET MVC系列】浅谈ASP.NET MVC 控制器
ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...
- 【ASP.NET MVC系列】浅谈ASP.NET MVC 路由
ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...
随机推荐
- thinkphp系列:类的自动加载是如何设计的
在使用框架开发时,可以发现框架有很多核心类,却很少看到显示的引入某个文件的代码,这是因为框架都采用了类的自动加载机制,即使用到类时,框架会自动找到该类所在文件的位置并引入该文件.为了更容易看出代码思路 ...
- 使用ThinkPHP的扩展功能
文件上传类的代码位于“\ThinkPHP\Libabry\Think\Uplod.class.php”,实例化电偶用即可.1:在Home模块Index控制器test方法中实现文件上传功能.打开文件\A ...
- 认识 var、let、const
我们通过声明.初始化.值的可变性.作用域.变量提升以及在工作中如何使用等多个方面来详细了解var.let.const等关键字功能与特点. 声明 var,let:可以先声明,后赋值(初始化),默认值是 ...
- 在Eclipse中写web工程 发现import javax.servlet.http.HttpSession无法引入
解决方法 得加入tomcat的jar包,右击项目->build path-add libraries->server Runtime->选择要导入的tomcat 就可以了,如果没有选 ...
- KVM 虚拟机 安装配置
原创博文安装配置KVM http://www.cnblogs.com/elvi/p/7718574.htmlweb管理kvm http://www.cnblogs.com/elvi/p/7718582 ...
- 51Nod 1110 距离之和最小 V3 中位数 思维
基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 X轴上有N个点,每个点除了包括一个位置数据X[i],还包括一个权值W[i].点P到点P[i]的带权距离 = 实际距离 ...
- upload 上传类
<?php/**file: fileupload.class.php 文件上传类FileUpload本类的实例对象用于处理上传文件,可以上传一个文件,也可同时处理多个文件上传 */class U ...
- MYSQL常见运算符和函数
字符函数 (1)CONCAT():字符连接 SELECT CONCAT('IMOOC','-','MySQL');//IMOOC-MySQL SELECT CONCAT (first_name,las ...
- 【福利】十一起,小冰科技所有UWP产品免费半个月
从十月一日起(UTC协调世界时),至十月十五,小冰科技所有UWP产品免费半个月!!!!!! 注意是UTC哦,中国区,比UTC早8个小时,要等到十月一号早晨八点开始... 现在小冰科技旗下一共发布了 5 ...
- Mac下CUDA开启及Tensorflow-gpu安装
本文由@ray 出品,转载请注明出处. 文章链接:http://www.cnblogs.com/wolfray/p/8040694.html 在之前的文章中,笔者介绍了在Mac下安装Tensorfl ...