为什么要使用NuGet
简单来说,NuGet可以让我们的工作更加方便。当一些库在我们的项目中被引用时,比如JQuery、Newtonsoft。Json、log4net等。我们需要从互联网上下载这些库,然后依次复制到每个项目中。当一些类库被更新时,再次重复它们是乏味的。这个时候我们可以考虑使用NuGet来帮助我们管理和更新这些类库,在更新类库的时候,我们会自动添加类库的相关引用,这是极其方便的当然,互联网上一些常用类库的更新频率并不是很高,即使发布了新版本,我们也不需要保持更新,所以这对于我们的帮助是有限的。个人认为NuGet最大的优势是可以自己搭建类库服务器。想想看,一些比较大的公司有很多项目,然后有一些是整个集团甚至整个公司通用的类库。当这些类库被更新时,我们需要依次将它们复制到我们的项目中。有时我们甚至不知道每个项目中的版本是否一致。有时候一两个项目忘记复制更新,出现一个莫名的错误。这令人头痛。现在有了NuGet,世界从此不一样了。
一.概述
在解释NuGet之前,我们先来看一个例子。
1.示例:
假设我们现在开发一个系统,其中我们选择Bootstrap作为前端框架。因此,在项目中,我们需要引入Bootstrap相关文件,并大致执行以下操作。
步骤1:下载引导文件
输入Bootstrap官网域名http://v3.bootcss.com/
输入域名,进入官网
步骤2:选择适当的版本并下载引导包
第三步:将包引入项目
将Bootstrap包引入Project的过程似乎很麻烦。更可怕的是,当项目中的Bootstrap包需要更新时,需要做重复的工作,非常繁琐。很好,VS自带的NuGet包管理器很好。
帮助我们解决了这些问题。
2.什么是Nuget包管理器?
为了。NET和VS,NuGet是一个. NET包管理系统,可以轻松响应应用程序中外部库文件及其依赖关系的添加、更新和删除。
此外,我们可以通过创建包和发布包来共享包,从而实现共享。
从微软的角度来看:尽量多尝试,不要指望微软会给我们提供我们需要的每一段代码。有数百万甚至数千万的开发者在开发。NET平台,每个开发人员都有自己独特的技术和需要解决的问题
等待微软解决每一个开发者的每一个问题,既不是规模,也不是意义。幸运的是,他们可以通过网上发布的一些库来解决自己或客户的问题。然而,面对这些网上
我们面临三大挑战:发现、安装和维护。幸运的是,NuGet很好地解决了这样的问题。
第二,将包添加到库中
有许多方法可以将包添加到库中。常见的方式有Manage NuGet包和包管理器控制台,下面将结合VS2017和基于ASP.NET的MVC模板进行讲解。
管理数字获取包
1.准备VS2017开发环境,用VS的MVC模板创建一个默认项目:NuGetDemo。
分析:
如果您小心的话,您会发现packages.config文件在上图中列出。其实是NuGet包的配置文件,因为当我们选择创建基于MVC模板的项目时,默认会引入第三方库文件,比如Bootstrap、Jquery等。
2.打开“获取包管理器”
参考=管理数字包
3.打开NuGet包管理器后,我们可以执行以下操作
(1)浏览软件包(2)查看当前系统的已安装软件包(3)更新软件包(4)在搜索框中搜索软件包
4.查看包详细信息
让我们以log4net为例
分析:
包装基本信息
5.装置
在安装任何日志之前,请选择安装版本。Log4Net,然后安装它。
6.检查安装
(1)检查控制台输出的安装信息
(2)检查NuGet包的安装
(3)查看项目参考资料
(4)检查软件包配置文件
7.更新包
NuGet包管理器不仅可以帮助我们安装包,还可以帮助我们维护包。我们可以在NuGet包管理器的帮助下更新包。
注意:当我们更新包时,此操作还将更新包的所有依赖项,以确保只安装依赖项的兼容资本保留。
在下面的例子中,我们在项目NuGet中安装了log 4 net 2 . 0 . 3版本。现在,我们将其更新到最新的2.0.8版本,并选择update。
单击确定。
请注意,此步骤将更新应用程序中与Log4net相关的所有内容。
查看更新结果
8.包恢复
NuGet的默认工作流是将包文件夹提交给版本控制。这样做的一个优点是,可以从版本控制中检索解决方案,以确保构建解决方案的每个包都可以安装,并且不需要从其他位置检索这些包。
然而,这样做也有缺点。包文件夹不是VS解决方案的一部分。因此,通过VS集成管理版本控制的开发人员需要采取额外的步骤来确保Packages文件夹可以提交。
(1)TFS可以自动提交包文件夹
(2)分布式版本控制系统(如Git)不建议提交Packages文件夹进行版本控制,因为分布式版本控制系统不擅长处理二进制文件。如果项目中的大量包发生变化,分布式版本控制系统库将
变得非常大。
幸运的是,NuGet 1.6引入了包修复功能来处理这些问题,它支持一个新的工作流,所以我们不需要将Packages文件夹提交给源代码控制。
这个过程需要手动执行几个步骤:每个项目需要执行一个单独的步骤来启用包恢复(在NuGet2.0~2.6中,每个开发人员还需要配置VS来允许包恢复)
注意:
现在,NuGet包恢复被自动启用,但是可以通过使用VS的包管理器设置中的以下两个选项来禁用包恢复功能:
A.允许NuGet下载丢失的包;
B.在VS中构建应用程序时,自动检查缺失的包;
通过NuGet 2.7自动恢复包。
(2)包管理器控制台
包管理器控制台是基于Visual Studio中PowerShell的控制台,不仅提供了强大的查找和安装包的功能,还支持一些管理器NuGet Packages对话框不支持的功能。
1.启动控制台
工具=NuGet包管理器=包管理器控制台
2.检查当前项目的已安装软件包
在控制台中输入获取包以查看当前项目的已安装包
展开:
(1)在以前的版本中,您可以使用以下命令过滤包
获取包裹列表可用过滤路线
(2)可以使用以下命令来代替get-package-list available-filter命令
查找包[-标识]
3.安装包
传递:控制台中的安装包包名称
在下图中,我们在项目中安装了Log4net,因此我们输入了Install-Package Log4net。因为我已经在项目中安装了Log4net,所以系统会提示我安装它。
展开:
(1)PowerShell命令支持扩展功能,相当于智能感知。输入命令的部分字符,按Tab键查看输入内容,实现智能感知。
(2)PowerShell支持复合命令,例如通过将一个命令流水线化到另一个命令。
以下命令为解决方案中的每个项目安装一个包。
获取项目全部|安装软件包日志4网络
(3)PowerShell还支持动态添加新命令
PowerShell的优点是一些已安装的软件包可以向Shell添加新的命令。
启动NuGet的其他方法
如果加到项目名称中,这里就不讨论了,但核心内容还是在上面(一)和(二)中。
4.包源和项目的选择
您可以通过选择程序包源右侧的档位来查看程序包及其基本操作
5.5 .概述获取包管理器
(1)NuGe包管理器基本界面
在控制台操作中,它由两部分组成:常规和包源
(2)包源概述
展开:
在管理NuGet包操作包模式下,操作对应于上面
示例说明:
下面我们解释一下基于以上两种模式添加autofac包的操作过程
管理新包模式
控制台的操作模式
(1)找到autofac包的NuGet地址
(2)添加自动调整包
第三,创建一个包
篇幅有限,所以我以后会写一篇概述.
4.发布包
篇幅有限,所以我以后会写一篇概述.
五次引用
[01]ASP.NET MVC 5高级编程(乔恩加洛韦,布拉德威尔逊,k .斯科特艾伦,大卫马森,孙原帅翻译)
摘要
以上就是本文的全部内容。希望本文的内容对大家的学习或工作有一定的参考价值。有问题可以留言交流。谢谢你的支持。