ASP.NET MVC系列文章css
【01】浅谈Google Chrome浏览器(理论篇)html
【02】浅谈Google Chrome浏览器(操做篇)(上)前端
【03】浅谈Google Chrome浏览器(操做篇)(下)shell
【04】浅谈ASP.NET框架 编程
【05】浅谈ASP.NET MVC运行过程 浏览器
【06】浅谈ASP.NET MVC 控制器 缓存
【07】浅谈ASP.NET MVC 路由 安全
【08】浅谈ASP.NET MVC 视图 前端框架
【09】浅谈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 ,孙远帅 译)
六 版权区