目录

VS Nuget的使用

一、引言

二、认识Nuget

三、如何使用Nuget

1.常规使用

2.安装类库的历史版本

3.常见问题

4.离线安装nuget包


VS 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包管理器配置。

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

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

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

本文仅作Nuget使用的简介以及备忘,如有不足请留言指正

VS Nuget的使用相关推荐

  1. 使用nexus来搭建Nuget私服

    近期在搭建nuget私服.选择nexus这个产品.nexus支持npm,.nuget等,功能比较强大. 前言 博主使用centos7.5来搭建nexus,遇到了不少的问题.最后还是搞定了. 1:下载n ...

  2. NuGet学习笔记(1) 初识NuGet及快速安装使用

    原文作者:懒惰的肥兔  博客地址:https://www.cnblogs.com/lzrabbit/archive/2012/04/30/2476255.html 关于NuGet园子里已经有不少介绍及 ...

  3. NuGet学习笔记(3) 搭建属于自己的NuGet服务器

    文章导读 创建NuGetServer Web站点 发布站点到IIS 添加本地站点到包包数据源 在上一篇NuGet学习笔记(2) 使用图形化界面打包自己的类库 中讲解了如何打包自己的类库,接下来进行最重 ...

  4. 如何在nuget上传自己的包+搭建自己公司的NuGet服务器(新方法)

    运维相关:http://www.cnblogs.com/dunitian/p/4822808.html#iis 先注册一个nuget账号https://www.nuget.org/ 下载并安装一下Nu ...

  5. 用命令行工具创建 NuGet 程序包

    NuGet.exe 下载地址 本文翻译自: https://docs.nuget.org/Create/Creating-and-Publishing-a-Package https://docs.n ...

  6. NuGet 无法连接到远程服务器-解决方法

    一. Entity Framework以下简称EF 安装EF4.3的步骤是首先安装VS扩展 NuGet,然后再使用NuGet安装EF程序包 安装完NuGet就可以安装EF了,有两种方式可以安装EF: ...

  7. nuget打包文件丢失如何使用powershell脚本解决

    本文介绍的是在使用nuget打包的过程中遇到丢失文件的问题的时候使用powershell脚本实现的解决办法,非常的巧妙 对于进行nuget打包时,有时我们需要添加一个配置文件,就是一些文本文件,而这些 ...

  8. 华为云提供针对Nuget包管理器的缓存加速服务

    在Visual Studio 2013.2015.2017中,使用的是Nuget包管理器对第三方组件进行管理升级的.而且 Nuget 是我们使用.NET Core的一项基础设施,.NET的软件包管理器 ...

  9. NuGet安装和使用

    1. NuGet是什么? NuGet is a Visual Studio 2010 extension that makes it easy to add, remove, and update l ...

  10. 1分钟解决VS每次运行都显示“正在还原nuget程序包”问题

    1分钟解决VS每次运行都显示"正在还原nuget程序包"问题 参考文章: (1)1分钟解决VS每次运行都显示"正在还原nuget程序包"问题 (2)https: ...

最新文章

  1. Orchard之模版开发
  2. java 服务器发布_我如何在java中发布到服务器?
  3. 2019.7.25作业
  4. 【机器学习】传统目标检测算法之级联分类器Cascade
  5. .NET架构小技巧(4)——反射,架构人员法宝II
  6. [Redux/Mobx] Context api可以取代Redux吗?为什么?
  7. raid5 合适 多少块硬盘_raid1 raid2 raid5 raid6 raid10如何选择使用?各需要几块硬盘?...
  8. SSM 框架整合 spring 发送邮件功能实现!
  9. C语言 pthread_cancelpthread_detach
  10. html页面加载动画尺寸,6种CSS3加载动画
  11. 【C11】complex
  12. python绘制动态条形图_Python 绘图与可视化 matplotlib 动态条形图 bar
  13. c# 中崎_C# 打开钱箱支持北洋、佳博、爱普生
  14. 计算机组成和计算机体系结构
  15. CMMI3级认证过程记录
  16. 应用搬家:如何将软件从C盘迁移到D盘?
  17. Mac上修改hosts文件无效的解决方案
  18. 两台(或多台)电脑怎么实现文件共享
  19. 生命中最重要的是什么?---9人的临终遗言
  20. python制作贺卡代码_用python作元旦贺卡_用AI帮你画新年贺卡:只需输入几个单词,就能模仿大师名做......

热门文章

  1. 止损的意义是什么?我们为何要止损这个操作?
  2. C++ STL之stack栈容器
  3. “熊猫烧香”病毒简介及特征
  4. 什么是办公自动化(OA)?
  5. 怪兽IT学院PHP零基础入门在线学习手册
  6. 推荐免费学习使用的云服务器
  7. 深圳学位分数计算机,深圳各区学位录取积分出炉!罗湖录取到C类,南山最高降40分……...
  8. Rosalind第二题:将DNA转录为RNA
  9. 一个有趣的网站:子说
  10. Realtek WiFi concurrent 模式介绍