欢迎光临
我们一直在努力

软件研发干货入门-前后端环境必备工具-Nuget(.Net下包管理器)

一、 Nuget包管理器

官网 https://learn.microsoft.com/zh-cn/nuget/what-is-nuget

  • NuGet 为 Microsoft 开发平台提供免费的开源包管理系统.
  • NuGet 自身会在 https://www.nuget.org/ 维护包含 100,000 个以上唯一包的中央存储库。这些包每天会由数百万 .NET/.NET Core 开发人员进行使用

二、安装

1.随dotnet SDK分发 :(正常的使用方式)

dontnet SDK下载地址: https://dotnet.microsoft.com/zh-cn/download/dotnet

2.随Visual Studio分发(除了.Net CLI,它还带UI界面的维护方式):

Visual Studio下载地址:https://visualstudio.microsoft.com/zh-hans/downloads/

3.nuget.exe(单独安装,适合非dotnet SDK的项目,如Mono)

下载地址:https://dist.nuget.org/win-x86-commandline/latest/nuget.exe

三、查看与清除全局包、缓存和临时文件夹

1.查看所有文件夹

dotnet nuget locals all –list (常用方式:我们一般在dontnet SDK框架下,使用dotnet.exe)
或者 nuget locals all -list (这是独立CLI文件nuget.exe使用方式,不常用)

2.清除所有文件夹内容

dotnet nuget locals all –clear
或者 nuget locals all -clear

3.根据情况清除指定的文件夹

//Clear the 3.x+ cache (use either command)
dotnet nuget locals http-cache –clear
nuget locals http-cache -clear

// Clear the 2.x cache (NuGet CLI 3.5 and earlier only)
nuget locals packages-cache -clear

//Clear the global packages folder (use either command)
dotnet nuget locals global-packages –clear
nuget locals global-packages -clear

// Clear the temporary cache (use either command)
dotnet nuget locals temp –clear
nuget locals temp -clear

// Clear the plugins cache (use either command)
dotnet nuget locals plugins-cache –clear
nuget locals plugins-cache -clear

四、配置全局包、缓存和临时文件夹路径,避免C盘增量占用

(以下为使用 .NET CLI为基准,Mono或老框架对包管理有点差异,详见微软官方文档)

1.配置优先级:环境变量>配置文件

配置文件NuGet.Config: 解决方案级>用户级>计算机级

1.1 解决方案(不建议配置):在解决方案文件夹中,设置适用于子文件夹中的所有项目。
1.2 用户(适当配置):%appdata%\\NuGet\\NuGet.Config
1.3 计算机级(不要配置):%ProgramFiles(x86)%\\NuGet\\Config
2.全局包路径
  • 包管理格式有两种 packages.config(默认,微软为了兼容之前的框架,不影响新框架) 和 PackageReference(推荐)
  • .NET Core/5/6/7/8等项目:强制使用 PackageReference,默认用packages.config设置无效
  • 全局包文件夹是 NuGet 安装任何下载的包的位置。 每个包完全扩展为与包标识符和版本号匹配的子文件夹。 使用 PackageReference 格式的项目始终直接从此文件夹中使用包。 使用packages.config格式时,包将安装到 全局包 文件夹中,然后将其复制到项目的 packages 文件夹中。
2.1 默认位置:%userprofile%.nuget\\packages
2.2 使用NUGET_PACKAGES环境变量修正
2.3 修改globalPackagesFolder路径(建议用户级:NuGet.Config,建议修改,避免磁盘增量占用)

dotnet nuget config set globalPackagesFolder "d:\\cache\\nuget\\packages"

NuGet.Config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
</packageSources>
<config>
<add key="globalPackagesFolder" value="d:\\cache\\nuget\\packages" />
</config>
</configuration>

3.HTTP缓存路径
  • NuGet 将缓存大多数 NuGet 源通信(不包括搜索)的副本,这些副本将组织到每个包源的子文件夹中。 包不会展开,并且上次修改日期超过 30 分钟的文件通常被视为过期。
3.1 默认位置:%localappdata%\\NuGet\\v3-cache
3.2 使用 NUGET_HTTP_CACHE_PATH 环境变量修正

setx NUGET_HTTP_CACHE_PATH "D:\\cache\\nuget\\v3-cache"

4.临时缓存路径
  • NuGet 可在其各种操作期间存储临时文件的文件夹。
4.1 默认位置:%temp%\\NuGetScratch
4.2 使用 NUGET_SCRATCH 环境变量修正

setx NUGET_SCRATCH "D:\\cache\\nuget\\scratch"

5.插件缓存路径
  • 用于存储操作声明请求结果的 NuGet 文件夹。 有关详细信息,请参阅 跨平台插件参考 。
5.1 默认位置:%localappdata%\\NuGet\\plugins-cache
5.2 使用 NUGET_PLUGINS_CACHE_PATH 环境变量修正

setx NUGET_PLUGINS_CACHE_PATH "D:\\cache\\nuget\\plugins-cache"

注意
  • 修改路径变量后,重启电脑生效(不要使用set,set为临时设置环境变量,setx为设置永久用户环境变量)
  • Visual Studio下Nuget提供UI界面设置:工具-》Nuget包管理器做简单配置

五、配置Nuget源

1.官方默认源:

nuget.org ,https://api.nuget.org/v3/index.json

1.1 查看源

dotnet nuget list source

1.2 添加源

# 官方源(已默认存在)
dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org

# 添加企业/私有源
dotnet nuget add source https://your-company.pkgs.visualstudio.com/_packaging/FeedName/nuget/v3/index.json -n "CompanyFeed"

# 本地文件夹源
dotnet nuget add source C:\\LocalPackages -n LocalFeed

2. Nuget私有服务器部署
  • nuget-server https://learn.microsoft.com/zh-tw/nuget/hosting-packages/nuget-server
  • JFrog Artifactory Community Edition (CE) https://jfrog.com/
3.相关生态
  • https://learn.microsoft.com/zh-cn/nuget/policies/ecosystem

六、使用总结

1.配置源(如果没有要求,不用管) 2.配置包或缓存路径(必须做,两件事先清除,后设路径,再重启电脑,完成开发前准备)

#清除
dotnet nuget locals all –clear
#设置
dotnet nuget config set globalPackagesFolder "d:\\cache\\nuget\\packages"
setx NUGET_HTTP_CACHE_PATH "D:\\cache\\nuget\\v3-cache"
setx NUGET_SCRATCH "D:\\cache\\nuget\\scratch"
setx NUGET_PLUGINS_CACHE_PATH "D:\\cache\\nuget\\plugins-cache"

赞(0)
未经允许不得转载:171主机测评 » 软件研发干货入门-前后端环境必备工具-Nuget(.Net下包管理器)
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址