.Net Core 2.0 NuGet 文件位置是什么
What is the .Net Core 2.0 NuGet file location
在查找 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 and .NET Core 2.0 High Performance”。默认路径应为 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 引入了 "aggregating" 包,例如microsoft.aspnetcore.all(什么都不包含只是引用所有内容,但实际上,如果您进行自包含构建,它将仅包含您正在使用的内容,而不是所有 DLL)。
正如您现在提到的,您可以在您的用户帐户下找到已安装的 Nuget 包,例如:
C:\Users\<你的用户名>.nuget\packages.
根据 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
在查找 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 and .NET Core 2.0 High Performance”。默认路径应为 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 引入了 "aggregating" 包,例如microsoft.aspnetcore.all(什么都不包含只是引用所有内容,但实际上,如果您进行自包含构建,它将仅包含您正在使用的内容,而不是所有 DLL)。
正如您现在提到的,您可以在您的用户帐户下找到已安装的 Nuget 包,例如: C:\Users\<你的用户名>.nuget\packages.
根据 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