c# - 通过 dotnet CLI 更改 NuGet 包下载的默认位置
问题描述
对于 VS2019 中的 C# 控制台应用程序,我从 .NET CLI(开发人员 PowerShell)发出了以下命令:-
dotnet add package <PackageName> --version <Version>
然后从对象浏览器中,我发现包程序集 (.dll) 已复制到以 C:\Users<userid>.nuget\packages<PackageName><Version> 开头的本地路径中。但是,如果我看到我的项目定义(.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 包下载到哪个本地路径的设置在哪里?
解决方案
这是全局 NuGet 缓存,它是可配置的(根据下面引用的文档),但您的是默认位置
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)进行覆盖。环境变量优先于配置设置。
推荐阅读
- r - 计算对数和平均值,将结果添加到 R 中的数据集
- leaflet - 产品的传单提供者,“不是客户的有效来源:”
- android - 返回到 onCreateView 内的上一个片段时,会触发 Button onClick()
- unity3d - 文本到 Unity 中的 2d Lipsync
- amazon-web-services - 是否可以从快照恢复 Redshift 数据库?
- sql - 向主键添加时间戳如何有助于返回更快的搜索结果?
- c++ - 调试为竞争性在线评委编写的程序
- python - 在 Python 中定义和评估可重用的逻辑表达式
- c# - 当整个项目在.NET5中构建“anyCPU”时,是否可以始终以x86运行加载的程序集
- python - 在 Selenium Chrome 驱动程序上无法加载网页并尝试了多年的解决方案,需要新的解决方案