Setting the NuGet package folder location for Visual Studio solutions
Long story short, check out this answer to a StackOverflow question: Package destination of restore of .net-core projects is always global package directory
The scenario is this, you are used to .NET Framework projects for which Visual Studio restored NuGet packages in a packages folder in the solution folder and then you switch to .NET Core. No packages folder! You google it and you find that there is a global folder in your user's profile where NuGet will download all of these projects, that .NET Core uses it by default and also that you might change this behavior used on a property in nuget.config. So here are the issues you have take into account:
A bit of an overkill, but try this as the beginning of your nuget.config file that sits next to the .sln file in your solution:
The scenario is this, you are used to .NET Framework projects for which Visual Studio restored NuGet packages in a packages folder in the solution folder and then you switch to .NET Core. No packages folder! You google it and you find that there is a global folder in your user's profile where NuGet will download all of these projects, that .NET Core uses it by default and also that you might change this behavior used on a property in nuget.config. So here are the issues you have take into account:
- There are two ways of configuring NuGet packages for your projects: a packages.config file and PackageReference elements in your .csproj file
- The name of the property you need to set is different based on the type of configuration: repositoryPath and globalPackagesFolder, respectively
- There are two formats for configuring nuget properties: using the add element inside the config element and using the repositoryPath element inside the settings element
- The format that worked for me in VS 2017 was the config element
- There are two locations for the nuget.config file: in a .nuget folder inside your solution folder and directly in the solution folder (or any of its parent folders)
- The location that is accepted by the latest versions of NuGet is directly in the solution folder
- Sometimes you need to restart Visual Studio for the change in nuget.config files to considered
- The path you specify is relative to the nuget.config file, no matter where it is
A bit of an overkill, but try this as the beginning of your nuget.config file that sits next to the .sln file in your solution:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="repositoryPath" value="./packages" />
<add key="globalPackagesFolder" value="./packages" />
</config>
<settings>
<repositoryPath>./packages</repositoryPath>
</settings>
...
</configuration>
Comments
Be the first to post a comment