为什么在我的.NET Core 解决方案的包含文件夹中没有任何包文件夹?

现在包是否被缓存在一个更加共享的位置或者其他什么地方?

我的解决方案文件夹没有任何 packages文件夹:

Solution folder without packages folder

35797 次浏览

You still have packages folder in your .NET Core solution, but the global packages are located at: C:\Users\[YourUsername]\.nuget\packages

You can check out a question I asked to see if the answers do you any good.

How do I include NuGet packages in my solution for .Net Core projects?

You can get that packages folder back, but you might not be happy with the results, since .Net Core projects rely on so many NuGet packages. Mine is hovering around 1 GB.

https://learn.microsoft.com/en-us/nuget/schema/nuget-config-file#config-section

Per project: References->Nuget dictates what packages are referenced and restored. But, as Eastrall mentioned, the packages folder is now global and located in your user folder: C:\Users\[YourUsername]\.nuget\packages

To force ./packages folder for Solution

To force download of packages folder to be a child of the solution folder for .NET Core projects, follow these steps:

  1. Create a NuGet.Config file in the same directory as the .sln file.

  2. Copy the following contents into the NuGet.Config file:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="globalPackagesFolder" value=".\packages" />
</config>
</configuration>
  1. Configure NuGet to download missing packages by:

    3.1. In Visual Studio: Tools -> Options

    3.2. Filter by nuget (top left in dialog). Select General

    3.3. Ensure Allow NuGet to download missing packages is checked

enter image description here

  1. Close and re-open the solution. NuGet will download the required packages.

Note: the NuGet.Config configuration can also be achieved by executing the following command from the NuGet Package Manager Console (Tools -> NuGet Package Manager -> Package Manager Console):

PM> nuget config -set globalPackagesFolder=.\packages -configfile "$(pwd)\NuGet.Config"