asp.net-core - .Net Core 2.0 NuGet 文件位置是什么

标签 asp.net-core nuget asp.net-core-mvc nuget-package

在查找 NuGet 包的存储位置时,我们注意到一些 dll 存储在 C:\Users\Username\.nuget\packages而其他人则存储在 C:\Program Files\dotnet\sdk\NuGetFallbackFolder .
例如,microsoft.aspnetcore.all 包文件夹存在于我的开发电脑 (C:\Users\Username\.nuget\packages 上的两个目录中。包含 2.0.7 和 2.1.0,而 C:\Program Files\dotnet\sdk\NuGetFallbackFolder包含 2.0.0、2.0.3、2.0.5、2.0.6 和 2.0.8)。
根据 Ovais Mehboob Ahmed Khan 所著的《C# 7 和 .NET Core 2.0 高性能》一书。默认路径应该是 C:\Users\Username\.nuget\packages .
为什么文件被分成不同的文件夹?
注意:我们在大多数项目中引用了 microsoft.aspnetcore.all 版本 2.0.8。我们在项目中引用的大多数其他包在两个文件夹之间交替。

最佳答案

.NET Core 引入了 Nuget 缓存的概念(有点类似于 GAC)。所有包仅下载一次到特定文件夹并重复用于所有项目。需要它是因为 .NET Core 2.x-3.x 现在由数百个包组成。所以这个框架现在非常细化,你可以使用你需要的东西。这造成了一个现在类型的问题 Nuget hell (过去我们有 DLL hell )。为了使开发人员的生活更轻松,MS 引入了“聚合”包,例如microsoft.aspnetcore.all(它不包含任何内容,只是引用所有内容,但实际上,如果您进行自包含构建,它将仅包含您正在使用的内容,而不是所有 DLL)。

正如您现在提到的,您可以在您的用户帐户下找到已安装的 Nuget 软件包,例如:
C:\Users\< 你的用户名 >.nuget\packages。

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

dotnet nuget locals all -l

结果将是这样的(文件夹名称 self 是解释性的):
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 - .Net Core 2.0 NuGet 文件位置是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50771365/

相关文章:

c# - "Reference the package directly from the project to resolve this issue."

visual-studio-2010 - Powershell 运行时

asp.net-mvc - ASP.NET Core 2 中的默认输入格式化程序

c# - 如何降低 aspnetcore 中 mvc 管道的日志级别?

与 Azure VM 相比,Azure 应用服务速度较慢

asp.net-core - 如何使用 ASP.NET Core API Controller 返回 View

c# - 缓冲流 - ASP.NET Core 3.0 中不允许同步操作

asp.net-mvc - 如何将 ASP.net 身份角色放入 Identityserver4 身份 token 中

visual-studio - nuget 包是否包含 pdb 符号

c# - 从类库注册Web API Controller