Switch back to packages.config

There was one step missing for me:

4.5. Make sure that Tools>Options>NuGet Package Manager>General>Default package management format is set to Packages.config


How I made it work:

  1. Take of screenshot of the packages we use in this project
  2. Add an "empty" packages.config file to the project and copy this into it:
<?xml version="1.0" encoding="utf-8"?>
<packages>
</packages>
  1. Unload the project and open the csproj file in a text editor.

  2. Remove all PackageReference elements out of the project file.

  3. Make sure that <RestoreProjectStyle> is not set in the project file.

  4. Make sure that:

    Tools > Options> NuGet Package Manager > General> Default package management format is set to Packages.config

  5. Delete the obj folder in the project

  6. Use the screenshot to re-download the packages again


Wanted to add one more thing. I tried all above steps and Visual Studio kept trying to use the global-packages location, instead of repositoryPath from Nuget.config. Finally found that there was a package-lock.json file in the obj dir of my projects that had the global package dir stored in it. For some reason the Clean operation, in Visual Studio, didn't delete the file, so I wound up doing a

git clean -x -d -f

At the root of my repository. Which deletes all un-tracked files and directores, and ignores the patterns the .gitignore file. It was a bit excessive, I could have tried to find them all by hand, but it got the job done. Now Nuget restore properly uses the repositoryPath setting specified in the Nuget.Config file.


You'll need to:

  1. Add an "empty" packages.config file to the project (that is, xml as in the example but without individual <package> elements)
  2. Unload the project or close vs and open the csproj file in a text editor.
  3. Remove all PackageReference elements out of the project file.
  4. Make sure that <RestoreProjectStyle> is not set in the project file.
  5. Reopen the project in VS.