iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >VS Nuget的使用实践
  • 767
分享到

VS Nuget的使用实践

2024-04-02 19:04:59 767人浏览 薄情痞子
摘要

目录一、引言二、认识Nuget三、如何使用Nuget1.常规使用2.安装类库的历史版本3.常见问题4.离线安装nuget包一、引言 最古老的时候我们想引用一个第三方类库,方法就是先下

一、引言

最古老的时候我们想引用一个第三方类库,方法就是先下载第三方的dll文件,然后放置到我们的项目中,然后添加引用来引用这些dll,这种方法有各种的不便,比如引用dll的版本不一致,或者dll忘记放到项目目录提交等等,使用过老版本VS的应该都深有体会,nuget就是为了解决类库引用的痛楚而出现的。

二、认识Nuget

Nuget是一个VS的扩展插件。我们在使用VS开发时,Nuget能把在项目中添加、移除和更新引用的工作变得更加快捷方便。

我们可以通过VS菜单上的“工具→扩展和更新”来查看Nuget

三、如何使用Nuget

1.常规使用

在解决方案管理器中,我们可以通过“右键子项目→管理Nuget程序包”或“右键子项目下的引用→管理Nuget程序包”来对该子项目的引用进行管理

在打开的“管理Nuget程序包”窗口中我们可以对该子项目引用的类库进行管理

2.安装类库的历史版本

nuget中搜索到的,一般都是该类库最新版本的,在使用过程中,我们可能需要去下载类库的历史版本,打开nuget官网:

https://www.nuget.org/

输入要安装的类库关键词,比如我要安装EF的6.0.2版本,直接搜索EF即可

第一个即我们想要的,点击进入详情

这里我们能看到该类库对其他类库是否有依赖,以及类库的各个历史版本。安装类库的历史版本就需要用到“程序包管理控制台”了,可以从菜单“工具→Nuget包管理器→程序包管理控制台”打开

偶尔有碰到程序包管理控制台打开失败的情况,现象是打开了这个窗口,但是里边是一片空白,后来查询了下资料VS的Nuget包管理器是依赖于windows操作系统的Powershell的,从开始菜单打开一次PowerShell,然后在VS里重新打开程序包管理控制台问题就解决了。

接下来比如我们要安装EF的6.0.2版本,在nuget官网上从EF的历史版本中找到6.0.2,点进去就可以看到安装命令

确保你要安装的子项目没选错,然后将命令粘贴到这里回车执行,没有错误提示就说明安装成功了。

3.常见问题

Nuget安装时会自动下载类库相关dll,存放路径为解决方案目录下package文件夹,因为package文件会比较大,实际开发中一般不会随源码一块提交到svn或者git,所以从svn或者git拉取源码以后,第一次生成时Nuget会自动还原项目中引用的类库。偶有还原失败的情况,可以手动还原重试,方法是:右键解决方案→启用Nuget程序包还原

如果Nuget包还原失败或者无法搜索在线类库,请检查Nuget源是否可用,可以尝试配置DNS为百度开放DNS:180.76.76.76,或者114.114.114.114,以及检查自己电脑否使用了Http代理,浏览器翻(科)墙(学)插件,VPN等,如果有代理可以关闭/停用了代理以后重试。

Nuget还原实际使用中还碰到了部分解决方案包还原失败的情况,即还原成功以后,在“解决方案管理器”中展开子项目的“引用文件夹”有黄色叹号出现,此时可以在程序包管理控制台中使用如下命令重新安装改子项目的包:


Update-Package -reinstall -ProjectName 项目名称

如,重新安装Model项目的包:


Update-Package -reinstall -ProjectName BookShop.Model

命令:Update-Package -reinstall可以重新安装解决方案下的所有包,但是这里不建议使用,因为被坑过一次,重新安装解决方案的所有包耗时非常长,也没有执行的必要性。

在实际使用中,如果我们要搭建2个框架相似的项目,假设其中一个已经搭建好了,那么另外一个项目就不需要用nuget管理器界面再重新把所有的引用再次搜索添加一遍了,只需要把对应子项目下的packages.config文件复制过来,执行nuget还原命令即可。

部分类库的nuget包的安装以后不会在项目引用目录下自动添加对相应dll的引用,比如Mysql相关的mysql.Data、Mysql.Data.Entity,此时手动添加引用即可(右键解决方案→添加引用→程序集→扩展中找到添加即可)

4.离线安装nuget包

在某些环境下我们可能需要离线安装nuget包(比如开发用的电脑无法直接联网)。

首先,我们需要去nuget官网下载好需要安装的nuget包(即.nupkg后缀的文件,需要注意的是离线安装模式依赖项需要手动下载安装)

nuget包下载

其次,添加nuget离线源,通过菜单“工具→Nuget包管理器→程序包管理器设置”打开nuget包管理器配置。

点击右上角的添加按钮,填写自定义的源名称和地址路径,可以配置任意的文件夹,将下载好的.nupkg包文件放入该文件夹即可。

然后我们在nuget包管理器中源选择我们创建的离线源就可以看到我们刚才放进去的离线包了

接下来安装即可,需要注意的是离线安装可能会提示依赖问题,需要手动安装依赖后才能安装成功

到此这篇关于VS Nuget的使用实践的文章就介绍到这了,更多相关VS Nuget使用内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: VS Nuget的使用实践

本文链接: https://www.lsjlt.com/news/135612.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • VS Nuget的使用实践
    目录一、引言二、认识Nuget三、如何使用Nuget1.常规使用2.安装类库的历史版本3.常见问题4.离线安装nuget包一、引言 最古老的时候我们想引用一个第三方类库,方法就是先下...
    99+
    2024-04-02
  • VS及Unity安装和使用Nuget包
    目录一、百科二、在VS2015及以上版本使用2.1 可视化工具安装2.2 Nuget控制台安装三、在Unity中使用Nuget3.1 下载Nuget包的dll一、百科 Nuget是一...
    99+
    2023-01-28
    VS安装Nuget包 Unity安装Nuget包
  • 如何使用jQuery mobile NuGet
    小编给大家分享一下如何使用jQuery mobile NuGet,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!问题默认情况下,你...
    99+
    2024-04-02
  • vscode使用nuget包管理工具
    目录一、使用dotnet add package 命令行实现1、列出Nuget本地的路径2、使用dotnet命令安装引用Nuget包3、安装引用指版本使用-v4、使用特定源安装引用N...
    99+
    2024-04-02
  • 通过VS下载的NuGet包修改其下载存放路径的操作方法
    目录一、了解NuGet包的默认存放路径二、为什么需要修改NuGet包的默认存放路径?三、更改下载的NuGet包存储位置四、修改VS离线包引用地址五、验证修改的新路径是否成功一、了解N...
    99+
    2024-04-02
  • vscode如何使用nuget包管理工具
    这篇文章主要讲解了“vscode如何使用nuget包管理工具”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vscode如何使用nuget包管理工具”吧!一、使用dotnet add pack...
    99+
    2023-07-01
  • PHP对象并发处理的最佳实践:Shell vs 多线程?
    在PHP开发中,我们经常需要处理大量的数据和请求,这时候并发处理就显得非常重要。但是,在PHP中实现并发处理并不像其他语言一样直接使用多线程,而是使用了一些特殊的技术。本文将介绍PHP对象并发处理的最佳实践,并探讨使用Shell和多线程的...
    99+
    2023-10-22
    对象 并发 shell
  • Vue使用超图SuperMap的实践
    目录前言相关资料vue项目引入二维超图超图二维案例引库vue 引入 3D 超图第一种导入地形图和影像加载 S3M 图层添加 MVT 图层前言 怎么讲呢,稀里糊涂的接了个电话,稀里糊涂...
    99+
    2024-04-02
  • .NET 6的Nuget包验证怎么用
    这篇文章主要介绍“.NET 6的Nuget包验证怎么用”,在日常操作中,相信很多人在.NET 6的Nuget包验证怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”.NET 6...
    99+
    2023-06-29
  • Go语言中CGO的使用实践
    目录1. Go语言调用C函数例子:2. Go语言调用C库函数:3. Go语言导出函数给C语言使用:4. Go语言导出函数指针给c语言使用:   &nbs...
    99+
    2024-04-02
  • Element中使用ECharts的项目实践
    目录一、引入ECharts1、直接引入echarts (安装echarts项目依赖)2、全局引入 (我们安装完成之后,可以在main.js中全局引入 echarts)3、我们可以将E...
    99+
    2024-04-02
  • 使用Golang玩转Docker API的实践
    目录安装 SDK管理本地的 Docker运行容器后台运行容器查看容器列表停止所有运行中的容器获取指定容器的日志查看镜像列表拉取镜像拉取私有镜像保存容器成镜像管理远程的 Docker远...
    99+
    2024-04-02
  • SpringBoot策略模式的实践使用
    目录前言实践使用总结优点:缺点:前言 在实际业务代码中,我们经常会碰到这样的代码: String type = actualService.getRealtype(uid); ...
    99+
    2024-04-02
  • Android使用Kotlin API实践WorkManager
    目录WorkManager 基础 使 Worker 开始执行任务 但是如果我希望进行异步操作怎么办? WorkManager 提供了一系列 API 可以更加便捷地规划异步任务,即使在...
    99+
    2024-04-02
  • VS Code的使用技巧有哪些
    今天小编给大家分享一下VS Code的使用技巧有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。经常帮一些同学 One-o...
    99+
    2023-06-27
  • 使用 PHP 函数库的最佳实践
    最佳使用 php 函数库的方法:选择最合适的函数。使用命名空间防止函数名冲突。利用自动化函数节省编码时间。缓存昂贵的函数调用以减少开销。使用依赖注入解耦函数和它们所依赖的对象。 PHP...
    99+
    2024-04-19
    实践 php
  • 使用Golang实现文件锁的最佳实践
    使用Golang实现文件锁的最佳实践 在开发中,我们经常会遇到需要对文件进行加锁的情况,以保证文件在多个goroutine或进程间的并发访问时能够正确操作。在Golang中,实现文件锁...
    99+
    2024-02-28
    golang 实现 文件锁 并发访问 golang开发
  • react-router-dom V6的配置使用实践
    目录一、关于书写方面二、路由的嵌套方面优化三、关于路由的灵活配置化四、关于路由鉴权方面最近在搭建PC项目的React框架,涉及到React Router,开发同学有时就需要去尝试点新...
    99+
    2024-04-02
  • 在PHP中使用AJAX的最佳实践
    随着Web应用程序的越来越复杂和交互性的增加,AJAX(Asynchronous JavaScript and XML)的使用逐渐流行起来。AJAX允许我们在不需要刷新整个页面的情况下与服务器进行异步通信并更新部分页面。而在PHP中使用AJ...
    99+
    2023-05-23
    PHP ajax 最佳实践
  • 为什么不使用VS Code
    本篇内容介绍了“为什么不使用VS Code”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!不久前,我大部分的...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作