宝哥软件园

NuGet在ASP中MVC学习VS中的应用 网

编辑:宝哥软件园 来源:互联网 时间:2021-09-01

为什么要使用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 .斯科特艾伦,大卫马森,孙原帅翻译)

摘要

以上就是本文的全部内容。希望本文的内容对大家的学习或工作有一定的参考价值。有问题可以留言交流。谢谢你的支持。

更多资讯
游戏推荐
更多+