ASP.NET Core 中的 NuGet 包位置在哪里?

Posted

技术标签:

【中文标题】ASP.NET Core 中的 NuGet 包位置在哪里?【英文标题】:Where's the NuGet package location in ASP.NET Core? 【发布时间】:2017-04-15 14:45:56 【问题描述】:

我是 ASP.NET Core 的新手,正在尝试找出 NuGet 包在我的本地计算机上的存储位置。

我已经安装了以下 NuGet 包:

nuget dapper 
nuget MicroOrm.Pocos.SqlGenerator

我想用我自己编译的版本替换其中一个 DLL,但我不知道把它放在哪里。 Dependencies 文件夹没有显示任何内容。

【问题讨论】:

【参考方案1】:

对于 project.json,nuget 目录位于用户配置文件文件夹中 (%UserProfile%\.nuget\packages)

更新

来自msdn

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

使用 PackageReference 时,使用来自 nuget.config 的 globalPackagesFolder 配置值。默认值为:

Windows:%userprofile%\.nuget\packages

Mac/Linux:~/.nuget/packages

使用 packages.config 时,使用来自 nuget.config 的 repositoryPath 配置值。默认值为:

$(Solutiondir)/packages

两个位置(globalPackagesFolderrepositoryPath)都可以被覆盖 使用NUGET_PACKAGES 环境变量。环境变量优先于配置设置。

【讨论】:

如何在 MSBuild 中获取此位置?之前你会做“..\..\packages\” 好吧,你可以做这样的事情`$(UserProfile)\.nuget\packages` 我找不到 project.json 文件@JuanM.Elosegui @ErçinDedeoğlu 早期版本的 .NET Core 使用 project.json 文件。后来被放弃了。见docs.microsoft.com/en-us/dotnet/core/tools/…【参考方案2】:

根据this 文档,您可以运行此命令,该命令将列出您机器上的所有 Nuget 文件夹:

dotnet nuget locals all -l

结果将是这样的(文件夹名称本身是解释性的):

C:\Users\...>dotnet nuget locals all -l
info : http-cache: C:\Users\...\AppData\Local\NuGet\v3-cache
info : global-packages: C:\Users\...\.nuget\packages\
info : temp: C:\Users\...\AppData\Local\Temp\NuGetScratch
info : plugins-cache: C:\Users\...\AppData\Local\NuGet\plugins-cache

【讨论】:

以上是关于ASP.NET Core 中的 NuGet 包位置在哪里?的主要内容,如果未能解决你的问题,请参考以下文章

使用NuGet将我们的ASP.NET Core类库打包并将程序包(类库)发布到NuGet平台上进行管理

使用NuGet将我们的ASP.NET Core类库打包并将程序包(类库)发布到NuGet平台上进行管理

对 ASP.NET Core 中的 Google OAuth 包感到困惑

Asp.Net Core 生成二维码(NuGet使用QRCoder)

ASP.NET Core 使用 EF Core

Hangfire在ASP.NET CORE中的简单实现