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. 【一】Gradle 初识

    1.Gradle和Maven的对比 gradle 使用groovy语言,可以进行逻辑判断,maven基于xml,无法进行逻辑判断. gradle 可以在一个项目中,根据需求,生成2个不同的jar, m ...

  2. css权重问题

    权重决定了你css规则怎样被浏览器解析直到生效.“css权重关系到你的css规则是怎样显示的 权重记忆口诀.从0开始,一个行内样式+1000,一个id+100,一个属性选择器/class或者伪类+10 ...

  3. 通过官网模板轻松实现Grafana的可视化界面配置(以MySQL监控项为例)

    我们知道可视化是监控的一个重要环节,所以往往我们这个环节花费大量的时间和精力.可是如果可以借鉴前辈的经验和成果,可以事半功倍.Grafana 有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编 ...

  4. acwing 66. 两个链表的第一个公共结点

    地址 https://www.acwing.com/problem/content/description/62/ 输入两个链表,找出它们的第一个公共结点. 当不存在公共节点时,返回空节点. 样例 给 ...

  5. LeetCode 1244. 力扣排行榜

    地址 https://www.acwing.com/solution/LeetCode/content/5765/ 题目描述新一轮的「力扣杯」编程大赛即将启动,为了动态显示参赛者的得分数据,需要设计一 ...

  6. 初学Python:Python的发展历史及下载安装

    Python作为一种计算机程序设计语言,自20世纪90年代初诞生至如今被人们逐渐悉知,经过版本更新以及功能添加,已广泛应用于各种独立的.大型项目的开发.Python 已经成为最受欢迎的程序设计语言之一 ...

  7. MySQL select from where multiple conditions

    Maybe one of the most used MySQL commands is SELECT, that is the way to stract the information from ...

  8. ubuntu升级pip报cannot import name 'main'解决方法

    执行sudo vi /usr/bin/pip 将代码: from pip import main if __name__ == '__main__': sys.exit(main()) 修改为: fr ...

  9. 黄聪:table自适应宽度和高度

    自适应宽度: td { width: 1px; white-space: nowrap; /* 自适应宽度*/ word-break: keep-all; /* 避免长单词截断,保持全部 */ } 自 ...

  10. js获取当前日期,包括星期几

    function getCurrentDate() {       var myDate = new Date();       var year = myDate.getFullYear(); // ...