nuget 是.Net平台上的包管理器, 对于包的发布(打包 package)和消费(下载依赖管理)都有很好的支持, 本文仅仅关注消费端,

https://www.nuget.org/       官网

https://nugetmusthaves.com/   有细分领域的排名

=======================
nuget项目依赖定义格式
=======================
新版 nuget 和VS 2019 都推荐项目依赖采用 PackageReference 格式, 这种格式的依赖声明是放到 .csproj 项目文件中的, 之前是使用 packages.config 文件来保存 nuget 依赖项. PackageReference 相比 packages.config 的优点有:
1. 统一了所有依赖声明存放文件
在原来的方式下, solution 下各个项目之间的依赖是在 .csproj 文件中声明的, nuget 依赖是在 packages.config 中声明的. 现在推荐方式, 统统定义在 .csproj 文件中, 在项目文件中搜索 PackageReference 字样就能看到其依赖关系.
2. 依赖项支持 float 版本写法,
比如项目初始时候, 加入了一个 CsvHelper 11.1 , 我们可以改写版本号为 11.* , 这样在 build或 restore 项目自动会从 nuget feed下载并应用 CsvHelper 11大版下的最新版.

启用 PackageReference 格式的方法是:
1. 针对新项目, 在选项中, 直接设置程序包管理默认的格式为: PackageReference
具体为: 找到NuGet 包管理器/常规页签: 设置程序包管理默认的格式为: PackageReference, 另一个可选格式为 packages.config 文件
2. 针对基于packages.config的老项目: 在VS的资源管理器的 References 节点上, 选择快捷菜单PackageReference….即可转为 PackageReference 格式.

=======================
项目中新增/升级/移除nuget包
=======================
在VS 2019项目文件节点上, 进入 nuget 管理器就能新加/升级/移除 nuget package.

=======================
nuget 环境设置
=======================
参考 https://docs.microsoft.com/zh-cn/nuget/reference/nuget-config-file
1. nuget 环境设置文件名为 NuGet.Config, 有两种级别的 NuGet.Config 文件:
(1). Solution 级别的设置
NuGet.Config 文件要和 solution 文件同目录, 注意不是 .csproj 文件的目录
(2). 操作系统用户级的设置
NuGet.Config 文件是在 %appdata%\NuGet 目录下, 比如:
C:\Users\Administrator\AppData\Roaming\NuGet\NuGet.Config

2. nuget 下载包存放位置
默认情况下, package都是存放到 %userprofile%\.nuget\packages 下, 我们可以通过OS环境变量 NUGET_PACKAGES 来设置新的package 存放路径, 也可以在 NuGet.Config 文件中指定 globalPackagesFolder 属性.

3. 下面是一个 NuGet.Config文件示例, 包含设置多个 packageSources 仓库, 上网代理, 私仓的认证

<config>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
<add key="myprivate" value="https://10.10.10.10/packages/" />
</packageSources>
<packageRestore>
<!-- Allow NuGet to download missing packages -->
<add key="enabled" value="True" />
<!-- Automatically check for missing packages during build in Visual Studio -->
<add key="automatic" value="True" />
</packageRestore>
<add key="globalPackagesFolder" value="c:\packages" />
<add key="http_proxy" value="http://company-squid:3128@contoso.com" />
<add key="signatureValidationMode" value="require" />
<packageSourceCredentials>
<myprivate>
<add key="Username" value="user@contoso.com" />
<add key="Password" value="..." />
</myprivate>
</packageSourceCredentials>
</config>

nuget 包管理器的更多相关文章

  1. nuget包管理器控制台下的powershell脚本介绍

    http://personball.com/powershell/2016/07/15/powershell-tips 定制自己的powershell,减少重复工作 安装一系列自己的常用nuget包 ...

  2. 详解.Net 如何上传自己的包到Nuget平台以及如何使用Nuget包管理器

    首先需要一个Nuget账户,可以在官网注册:https://www.nuget.org.已有账户略. 需要一个ApiKeys,登录之后,在我的账户里找到ApiKeys进去; 创建ApiKeys 下载N ...

  3. [2016-07-15]nuget包管理器控制台下的powershell脚本介绍

    博客有阵子没打理了,今天刚恢复样式,但是标题还是不太正常,总算能凑合看看. 回到正题,最近为了能在VS的程序包管理器控制台上能方便的自定义ps脚本去调整project的package,就开始看powe ...

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

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

  5. Visual Studio 2013 更新 NuGet 包管理器

    Ø  前言 使用 Visual Studio 中的 NuGet 包管理器下载程序时,有时可能出现类似的错误:. 5.   在"联机"选项中搜索"NuGet",选 ...

  6. 当通过Nuget包管理器获取还原组时,出现 提示 “xxxxx”已拥有为“xxxxx”定义的依赖项

    当通过Nuget包管理器获取还原组件时,出现  提示 “xxxxx”已拥有为“xxxxx”定义的依赖项 时 解决方法: 工具---扩展和更新,把Nuget包管理器卸载后,重启VS,再安装,现打开VS项 ...

  7. .NET持续集成与自动化部署之路第二篇——使用NuGet.Server搭建公司内部的Nuget(包)管理器

    使用NuGet.Server搭建公司内部的Nuget(包)管理器 前言     Nuget是一个.NET平台下的开源的项目,它是Visual Studio的扩展.在使用Visual Studio开发基 ...

  8. [Visual Studio] 记一次排错:打不开 Nuget 包管理器里的安装package页面,无法 安装 / 恢复 包

    出差一阵子PC很久没用了, 回来在用Visual Studio (2017) 的时候, 工程里无法安装Package了  >_<    --- 也不知道电脑做了什么?--- Nuget包管 ...

  9. 使用腾讯云提供的针对Nuget包管理器的缓存加速服务

    继阿里巴巴开源镜像站(https://opsx.alibaba.com/).华为云镜像站点(https://mirrors.huaweicloud.com/ )之后,腾讯也已于近日上线了类似的服务,官 ...

随机推荐

  1. 安装docker并部署web项目

    一.docker简介 1.docker定义:docker是一个用来装应用的容器,就像杯子可以装水,笔筒可以装笔,书包可以放书一样.你可以把“Hello World!”放到docker中,也可以把网站放 ...

  2. Linux:nginx服务器的搭建

    搭建nginx网站服务器 安装nginx yum install nginx 启动服务 安装完成后启动服务 systemctl start nginx 通过浏览器测试 地址栏输入localhost 不 ...

  3. 非法指令(Illegal Instruction)问题定位

    关键词:Illegal Instruction.SIGILL等. 进程在运行过程中会收到SIGILL信号,此类错误是由操作系统发送给进程的. SIGILL是某个进程中的某一句不能被CPU识别指令,这些 ...

  4. Linux内核和用户空间通信之netlink

    1. netlink Netlink套接字是用以实现用户进程与内核进程通信的一种特殊的进程间通信(IPC) ,也是网络应用程序与内核通信的最常用的接口. Netlink 是一种特殊的 socket,它 ...

  5. Druid-代码段-1-4

    所属文章:池化技术(一)Druid是如何管理数据库连接的? 本代码段对应流程1.3,连接可用性测试: //数据库连接可用性测试 protected boolean testConnectionInte ...

  6. Navicat Premium 破解方法

    最新Navicat Premium12 破解方法,亲测可用 1.下载Navicat Premium 官网https://www.navicat.com.cn/下载最新版本下载安装(文末,网盘地址有64 ...

  7. java异常处理机制详解

    java异常处理机制详解 程序很难做到完美,不免有各种各样的异常.比如程序本身有bug,比如程序打印时打印机没有纸了,比如内存不足.为了解决这些异常,我们需要知道异常发生的原因.对于一些常见的异常,我 ...

  8. 机器学习模型| 监督学习| KNN | 决策树

    分类模型 K近邻 逻辑斯谛回归 决策树 K近邻(KNN) 最简单最初级的分类器,就是将全部的训练数据所对应的类别都记录下来,当测试对象的属性和某个训练对象的属性完全匹配时,便可以对其进行分类K近邻(k ...

  9. 【ECNU71】一个游戏(水题)

    点此看题面 大致题意: \(n\)种元素,有若干组将\(x\)元素转化为\(y\)元素的操作.问对于所有可能的元素拥有状况,改变转化操作的顺序,是否会影响转化后最终的结果. 水题 虽说是这么水的题,但 ...

  10. React中引用CSS样式的方法

    相对于html中引用css的三种方法,react中也有三种方法,一一相对: 1. 行内样式:直接在组件内部定义 <div style={{width:'20px',height:'30px'}} ...