nuget creating two package folders?

2020-07-18 06:15发布

问题:

OK,

So i recently reinstalled windows 10 and upgraded vs2013 -> vs2015. At this point i tried to grab a couple of nuget packages.

The problem i am having is that i have a .nuget/packages folder at the same level as my solution file (set via NuGet.config) but i also have exactly the same folder getting created in the root of my user folder.

the packages folder for my solution contains the packages installed for that solution, while the one i don't want in my user directory contains all the packages for all the projects and solutions i am working on.

Is there a way i can prevent this .nuget folder being created in my user directory? it seems useless when i already have package folders for my solutions

Thanks

回答1:

You can clear the .nuget\packages directory under your user profile however the packages will be downloaded again if you install them again.

Package retrieval

%USERPROFILE%\.nuget\packages is the local machine cache used by NuGet v3 when installing NuGet packages for new project types, such as Universal Windows projects.

For a C# console project NuGet will use the %LOCALAPPDATA%\NuGet\Cache directory which is also what NuGet v2 uses.

ASP.NET Core projects currently use their own %USERPROFILE%\.dnx\packages directory for NuGet packages.

Specifying a custom NuGet package location

To prevent NuGet from copying the packages to your user profile you can create a new %NUGET_PACKAGES% environment variable pointing to the location where you want NuGet to copy the files e.g. C:\git-repositories\.nuget\packages.

To prevent NuGet from copy the packages to the solution folder too you can create a new NuGet.config file either in the solution folder or at any higher level up to the root. As content you can specify following XML.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <config>
    <add key="repositoryPath" value="C:\git-repositories\.nuget\packages" />
  </config>
</configuration>

As help for configuration inheritance please follow this link: NuGet Configuration Inheritance