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

You can use nuget.exe to restore your packages or with NuGet 2.7, or above, installed you can simply compile your solution in Visual Studio, which will also restore the missing packages.

For NuGet.exe you can run the following command for each project.

nuget install packages.config

Or with NuGet 2.7 you can restore all packages in the solution using the command line.

nuget restore YourSolution.sln

Both of these will pull down the packages. Your project files will not be modified however when running this command so the project should already have a reference to the NuGet packages. If this is not the case then you can use Visual Studio to install the packages.

With NuGet 2.7, and above, Visual Studio will automatically restore missing NuGet packages when you build your solution so there is no need to use NuGet.exe.

To update all the packages in your solution, first restore them, and then you can either use NuGet.exe to update the packages or from within Visual Studio you can update the packages from the Package Manager Console window, or finally you can use the Manage Packages dialog.

From the command line you can update packages in the solution to the latest version available from nuget.org.

nuget update YourSolution.sln

Note that this will not run any PowerShell scripts in any NuGet packages.

From within Visual Studio you can use the Package Manager Console to also update the packages. This has the benefit that any PowerShell scripts will be run as part of the update where as using NuGet.exe will not run them. The following command will update all packages in every project to the latest version available from nuget.org.

Update-Package

You can also restrict this down to one project.

Update-Package -Project YourProjectName

If you want to reinstall the packages to the same versions as were previously installed then you can use the -reinstall argument with Update-Package command.

Update-Package -reinstall

You can also restrict this down to one project.

Update-Package -reinstall -Project YourProjectName

The -reinstall option will first uninstall and then install the package back again into a project.

Or, you can update the packages using the Manage Packages dialog.

Updates:

  • 2013/07/10 - Updated with information about nuget restore in NuGet 2.7
  • 2014/07/06 - Updated with information about automatic package restore in Visual Studio and brought the answer up to date with other changes to NuGet.
  • 2014/11/21 - Updated with information about -reinstall

Open Package Manager Console

  • View -> Other Windows -> Package Manager Console

Reinstall all packages in ALL PROJECTS of the current solution:

Update-Package -Reinstall

Reinstall all packages in SPECIFIC PROJECT of the current solution (Thanks to unarity and ashes999):

Update-Package -ProjectName 'YourProjectNameGoesHere' -Reinstall

There is another, newer and quicker way to do this from within Visual Studio. Check out this post by David Ebbo, and reference the comments section if you run into trouble. Basically, you do the following in Package Manager prompt:

PM> Install-Package NuGetPowerTools
PM> Enable-PackageRestore

Afterwards, when you build your solution the packages will be automatically installed if they're missing.

Update:

This functionality is built into Nuget 1.6 with visual studio integration so you don't even need to install NuGetPowerTools or type commands. All you have to do is

Right click on the Solution node in Solution Explorer and select Enable NuGet Package Restore.

Read this article for more details.


Here's another solution if you are using website projects, or don't want to enable NuGet Package restore.

You can use the package manager console to enumerate all the packages in the package.config file and re-install them.

# read the packages.config file into an XML object
[xml]$packages = gc packages.config

# install each package 
$packages.packages.package | % { Install-Package -id $($_.id) -Version $($_.version) }