ASP.NET MVC学习之NuGet在VS中的运用浅谈(2)

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包管理器=>程序包管理器控制台

ASP.NET MVC学习之NuGet在VS中的运用浅谈

2.查看当前项目已安装的包

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

ASP.NET MVC学习之NuGet在VS中的运用浅谈

拓展:

(1)以前版本,可以通过以下命令来过滤包

Get-Package -ListAvailable -Filter Route

ASP.NET MVC学习之NuGet在VS中的运用浅谈

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

Find-Package [-Id]

ASP.NET MVC学习之NuGet在VS中的运用浅谈

3.安装包

在控制台中通过:Install-Package 包名

下图中,我们在项目中安装Log4net,因此输入Install-Package Log4net,由于我已在项目中安装了Log4net,因此提示已经安装。

ASP.NET MVC学习之NuGet在VS中的运用浅谈

拓展:

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

ASP.NET MVC学习之NuGet在VS中的运用浅谈

(2)PowerShell支持复合命令,比如通过将一个命令管道传输到另一个命令。

如下命令向解决方案中每一个项目安装一个包。

Get-Project -ALL | Install-Package log4net

ASP.NET MVC学习之NuGet在VS中的运用浅谈

(3)PowerShell也支持动态添加新命令

PowerShell强大之处在于,安装的一些包可以为shell添加新命令。

ASP.NET MVC学习之NuGet在VS中的运用浅谈

(三)其他方式启动NuGet

如在项目名称中添加,这里不论述,核心内容还是在如上的(一)和(二)部分。

ASP.NET MVC学习之NuGet在VS中的运用浅谈

4.关于包源和项目的选择

通过选择程序包源右边的齿轮,即可查看该包及对包的基本操作

ASP.NET MVC学习之NuGet在VS中的运用浅谈

5.NuGet包管理器概述

(1)NuGe包管理器基本界面

在控制台操作中,由两大部分组成:常规和程序包源

ASP.NET MVC学习之NuGet在VS中的运用浅谈

(2)程序包源概述

ASP.NET MVC学习之NuGet在VS中的运用浅谈

拓展:

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

ASP.NET MVC学习之NuGet在VS中的运用浅谈

例子讲解:

下面我们讲解基于如上两种模式添加autofac包的操作过程

Manage NuGet Packages 方式

ASP.NET MVC学习之NuGet在VS中的运用浅谈

控制台操作方式

(1)找到autofac包的NuGet地址

ASP.NET MVC学习之NuGet在VS中的运用浅谈

(2)添加autofac包

ASP.NET MVC学习之NuGet在VS中的运用浅谈

三 创建包

篇幅有限,以后专门写一篇文章概述......

四 发布包

篇幅有限,以后专门写一篇文章概述......

五 参考文献

【01】ASP.NET MVC5 高级编程(Jon Galloway,Brad Wilson,K.Scott Allen,David Matson ,孙远帅 译)

总结

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wdpywy.html