通过 dotnet CLI 更改 NuGet 包下载的默认位置

问题描述 投票:0回答:2

对于 VS2019 中的 C# 控制台应用程序,我从 .NET CLI(开发人员 PowerShell)发出以下命令:-

 dotnet add package <PackageName> --version <Version>

然后从对象浏览器中我发现包程序集(.dll)已被复制到以 C:\Users.nuget\packages 开头的本地路径中。但是,如果我看到我的项目定义(.csproj 文件),我只会看到包名称而不是路径:-

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net5.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="<PackageName>" Version="<Version>" />
  </ItemGroup>

</Project>

Visual Studio(或 .dotnet CLI)中决定 NuGet 包应下载到哪个本地路径的设置在哪里?

c# .net nuget
2个回答
2
投票

这是全局 NuGet 缓存,它是可配置的(根据下面引用的文档),但您的是默认位置

https://www.github.com/NuGet/learn.microsoft.com-nuget/tree/main/docs%2Fconsume-packages%2Fmanaging-the-global-packages-and-cache-folders.md

global-packages 文件夹是 NuGet 安装任何下载的包的位置。每个包都完全展开到与包标识符和版本号匹配的子文件夹中。使用 PackageReference 格式的项目始终直接使用此文件夹中的包。使用packages.config时,包将安装到global-packages文件夹中,然后复制到项目的packages文件夹中。

Windows:%userprofile%.nuget\packages

Mac/Linux:~/.nuget/packages

使用 NUGET_PACKAGES 环境变量、globalPackagesFolder 或repositoryPath 配置设置(分别使用PackageReference 和packages.config 时)或RestorePackagesPath MSBuild 属性(仅限MSBuild)进行覆盖。环境变量优先于配置设置。


0
投票

您可以添加环境变量(系统变量)来更改nuget包的默认位置。为此,将 NUGET_PACKAGES 系统变量添加到您的系统环境变量中(如果您的系统没有,否则进行编辑),如下图所示。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.