nuget 包管理器
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 包管理器的更多相关文章
- nuget包管理器控制台下的powershell脚本介绍
http://personball.com/powershell/2016/07/15/powershell-tips 定制自己的powershell,减少重复工作 安装一系列自己的常用nuget包 ...
- 详解.Net 如何上传自己的包到Nuget平台以及如何使用Nuget包管理器
首先需要一个Nuget账户,可以在官网注册:https://www.nuget.org.已有账户略. 需要一个ApiKeys,登录之后,在我的账户里找到ApiKeys进去; 创建ApiKeys 下载N ...
- [2016-07-15]nuget包管理器控制台下的powershell脚本介绍
博客有阵子没打理了,今天刚恢复样式,但是标题还是不太正常,总算能凑合看看. 回到正题,最近为了能在VS的程序包管理器控制台上能方便的自定义ps脚本去调整project的package,就开始看powe ...
- 华为云提供针对Nuget包管理器的缓存加速服务
在Visual Studio 2013.2015.2017中,使用的是Nuget包管理器对第三方组件进行管理升级的.而且 Nuget 是我们使用.NET Core的一项基础设施,.NET的软件包管理器 ...
- Visual Studio 2013 更新 NuGet 包管理器
Ø 前言 使用 Visual Studio 中的 NuGet 包管理器下载程序时,有时可能出现类似的错误:. 5. 在"联机"选项中搜索"NuGet",选 ...
- 当通过Nuget包管理器获取还原组时,出现 提示 “xxxxx”已拥有为“xxxxx”定义的依赖项
当通过Nuget包管理器获取还原组件时,出现 提示 “xxxxx”已拥有为“xxxxx”定义的依赖项 时 解决方法: 工具---扩展和更新,把Nuget包管理器卸载后,重启VS,再安装,现打开VS项 ...
- .NET持续集成与自动化部署之路第二篇——使用NuGet.Server搭建公司内部的Nuget(包)管理器
使用NuGet.Server搭建公司内部的Nuget(包)管理器 前言 Nuget是一个.NET平台下的开源的项目,它是Visual Studio的扩展.在使用Visual Studio开发基 ...
- [Visual Studio] 记一次排错:打不开 Nuget 包管理器里的安装package页面,无法 安装 / 恢复 包
出差一阵子PC很久没用了, 回来在用Visual Studio (2017) 的时候, 工程里无法安装Package了 >_< --- 也不知道电脑做了什么?--- Nuget包管 ...
- 使用腾讯云提供的针对Nuget包管理器的缓存加速服务
继阿里巴巴开源镜像站(https://opsx.alibaba.com/).华为云镜像站点(https://mirrors.huaweicloud.com/ )之后,腾讯也已于近日上线了类似的服务,官 ...
随机推荐
- GO基础之函数的高级用法
一.可变参数 支持可变长参数列表的函数可以支持任意个传入参数,比如fmt.Println函数就是一个支持可变长参数列表的函数. package main import "fmt" ...
- HTML <input> 标签的 accept 属性
<form> <input type="file" name="pic" id="pic" accept="im ...
- Unitest自动化测试基于HTMLTestRunner报告案例
报告效果如下: HTMLTestRunner脚本代码如下: #coding=utf-8 # URL: http://tungwaiyip.info/software/HTMLTestRunner.ht ...
- iOS网络开发—POST请求和GET请求
创建GET请求: // 1.设置请求路径 NSString *urlStr=[NSString stringWithFormat:@"http://192.168.1.53:8080/MJS ...
- 【Android】Android多渠道打包--Gradle打包
Android多渠道打包--Gradle打包 前言 由于App一般都会在多个应用市场上架,为了分析App在每个不同渠道的具体的数据,一般都会对不同渠道打包不同的App.多渠道打包有多种方式,这里只介绍 ...
- python获取指定文件夹下的文件和文件夹
import os filepaths = []; dirpaths = []; pathName = r'C:\anfei\json\20191128' for root, dirs, files ...
- hebust-fengyu
三人行必有我师焉,择其善者而从之,其不善者而改之. 入则无法家拂士,出则无敌国外患者,国恒亡,然后知生于忧患而死于安乐也. 狡兔死走狗烹,飞鸟尽良弓藏,敌国尽谋臣亡 今齐地方千里,百二十城,宫妇左右莫 ...
- Codeforces Round #603 (Div. 2) D. Secret Passwords 并查集
D. Secret Passwords One unknown hacker wants to get the admin's password of AtForces testing system, ...
- Codeforces Round #602 (Div. 2, based on Technocup 2020 Elimination Round 3) F2. Wrong Answer on test 233 (Hard Version) dp 数学
F2. Wrong Answer on test 233 (Hard Version) Your program fails again. This time it gets "Wrong ...
- super()方法详解
目录 一.单独调用父类的方法 二.super() 方法基本概念 2.1 描述 2.2 语法 2.3 单继承使用super() 2.4 多继承使用super() 三.注意事项 四.练习 一.单独调用父类 ...