How do I get NuGet to install/update all the packages in the packages.config?

Viewed 697095

I have a solution with multiple projects in it. Most of the third party references are missing, yet there are packages.config file for each project. How do I get NuGet to install/update all the packages needed? Does this need to be done via command line for each project?

17 Answers

I tried Update-Package -reinstall but it fails on a package and stopped processing all remaining packages of projects in my solution.

I ended up with my script that enumerates all package.config files and run Update-Package -Reinstall -ProjectName prj -Id pkg for each project/package.

Hope it can be useful for someone:

$files = Get-ChildItem -Recurse -Include packages.config;

[array]$projectPackages = @();
$files | foreach { [xml]$packageFile = gc $_; $projectName = $_.Directory.Name; $packageFile.packages.package.id | foreach { $projectPackages += @( ,@( $projectName, $_ ) ) } }

$projectPackages | foreach { Update-Package -Reinstall -ProjectName $_[0] -Id $_[1] }

Edit: This is an error that I had: Update-Package : Unable to find package 'EntityFramework.BulkInsert-ef6'. Existing packages must be restored before performing an install or update. Manual run of Update-Package -Reinstall -ProjectName my_prj -Id EntityFramework.BulkInsert-ef6 worked very well.

Don't know since when, but in VS2019 you can do it in an easier way:

  1. right click solution in Solution Explorer
  2. select Manage Nuget Packages for Solution
  3. there are 4 tabs, Browse, Installed, Updates, Consolidate
  4. the Consolidate shows if there is any projects using different version of packages (and in most cases, that's why we want to update all the packages)
  5. the Updates shows if there is any update available in ANY projects. Select all and click update, the job will be done.
Related